Linux文本处理命令

1.关键字搜索命令grep
 grep命令与正则表达式有关;
最常用的功能是基于关键字搜索,但其功能远不止如此;
例如:在a.txt中搜索带关键字 my的几行
grep my a.txt
grep和管道结合,处理输出信息;可以实现和上面相同的效果;
cat a.txt | grep my
 
grep的常用参数:
    -i    ->在搜索时忽略大小写;
    -n    ->显示结果所在的行数;
    -v    ->输出不带关键字的行,相当于反选;
    -Ax    ->在输出的时候包含结果所在行之后的指定行数;x为行数;
    -Bx    ->在输出的时候包含结果所在行之前的指定行数;
 
2.基于列处理文本的命令 cut
cut的常用参数:
    -d    ->基于指定分隔符处理(默认Tab)
    -f    ->指定输出的列号;    就是文本被分割后成多少列后,显示第几列,从1开始;例如f2就是显示第二列;
    -c    ->基于字符进行切割 ;例如显示第m到第n个字符:cut -cm-n a.txt;一般用于固定长度的切割;
例如:使用点“.”作为分隔符,
cut -d: -f1 a.txt
结果:
 
3.统计文本信息命令 wc
wc是word count 单词计数器的缩写;
wc 可统计目标文件有多少个字符、多少行等等;
wc a.txt
常用参数:
    -l    ->只统计行数;
    -w    ->只统计单词;
    -c    ->只统计字节数;
    -m    ->只统计字符数;
 
4.文本排序 sort
sort 是基于每一行来排序的
例如:
sort a.txt
结果:
 
常用参数:
    -r    ->倒序排序
    -n    ->基于数字排序
    -f    ->忽略大小写
    -u    ->删除重复行
    -t c    ->使用c作为分隔符分割为列进行排序
    -k x   ->-k本身是指定从第几个字符开始进行排序;也可以作为基于列去分割时用哪个列进行排序;
 
5.删除重复行
使用 sort -u可以删除重复行;
命令 uniq 用来删除重复的相邻行;
 
6.文本比较命令diff
diff命令用来比较两个文本的区别;
diff a.txt b.txt
 
参数:
    -i    ->忽略大小写
    -b    ->忽略空格数量的改变
    -u    ->统一显示比较信息;一般生成补丁path文件
diff -u a.txt b.txt >final.path
 
7.拼写检查命令aspell
只能检查英文;用得少
 
8.处理文本内容命令 tr
tr是translate转换的缩写;主要有两种用法;
 
删除关键字:例如删除a.txt中的tmd
tr -d tmd<a.txt
 
转换大小写:
tr 'a-z' 'A-Z'<a.txt
 
9.搜索替换命令 sed
使用正则表达式处理文件:sed 引号括起来的正则表达式 需要替换的文件
's/tmd/***/g' 表示在文件中搜索tmd 替换成 ***;其中g表示出现多个tmd时都去进行匹配
命令:
sed 's/tmd/***/g' a.txt
结果:
 
只替换1到5行:
sed '1,5s/tmd/***/g' a.txt
 
在一个命令中指定多种匹配方式:通过加 -e 参数
sed -e 's/tmd/***/g' -e 's/a/A/g' a.txt
 
通过 -f 参数,可以指定从文件b.txt中读取替换指令
sed -f b.txt a.txt
 
 
 
 
 
posted @ 2019-03-04 21:45  L丶银甲闪闪  阅读(175)  评论(0编辑  收藏  举报