2019-04-18 三剑客sed应用

一,

grep:作用过滤

sed:过滤替换(修改,取行)——>增删查改

awk:过滤去列统计计算

grep的参数:

-i  =过滤不分大小写

-v =取反

-n =显示行号

-o =显示过程(显示每次grep匹配到的内容)

-E =支持扩展正则

-w =按照单词进行匹配

-l =grep过滤的时候只显示文件名,不显示文件内容

-R =递归过滤

-A =显示grep找出的内容及接下来几行(ofter)

-B =显示grep找出的内容及内容的上几行(before)

-C =-C=-A  -B

-c= 统计包含xxx一共有多少行

二,

sed=stream  editor  流编辑器(每个文件像源源不断的水流)

sed的参数

-n  取消默认输出

-r  支持扩展正则

-i   修改文件内容

esd功能:增删改查

(1)查找(根据行号进行查找)

sed  -n   '3p'  oldboy.txt (查找文件第三行内容)

sed  -n   '3,4'p  oldboy.txt  (查找第三行到第四行的内容)

sed  -n  '/102/,/105/p'  oldboy.txt   (从第一个开始到最后一个结束)——>从哪来到哪去(表示范围)

sed  -n  '/oldb.y/p'   oldboy.txt  (过滤)

(2)增加:a=appent  追加在你指定行动的下写入你要的东西

                    i=insert  (插入在你指定的行上面追加内容)

sed  '3a119xiaohong'  oldboy.txt (追加到文件的第三行)

参数:-i  修改内容

          -i.bak  先备份再修改

         c=replace   (先把这一行的内容清空然后写入)

(3)删除

sed    '/^$/d'  oldboy.txt   (删除空行,不显示空行)

sed -n   '/^$/!p' oldboy.txt  (不显示空行   !=不)

(4)修改:

替换:sed 's#oldboy#alex#g'  oldboy.txt   (把oldboy替换为alex)

g=全局替换

s=替换

sed命令默认替换每一行的第一个内容(每一行第一个匹配到的)

后向引用:再前面的(##)把你要的内容保护起来,在后面两个##之间通过\数字来使用(先保护后使用)

例如:echo  123456 |sed  -r  's#(.*)#<\1>#g'

你可能感兴趣的:(2019-04-18 三剑客sed应用)