一,
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'