1.awk(格式化生成器&列值输出)
1.1 语法结构:awk [option] 'pattern{action}' filename
awk -F|-v '处理范围{输出方式}' 文件名
1.2 option参数
-F:指明输入字段的分隔符
-v:自定义变量
1.3 pattern(用于定界)
:处理文件的所有行
/pattern/:正则匹配的行 awk -F : '/xxx/{print $0}' filename
NF(每行字段数量) NR(文件的行号) $1:第一列 $NF:最后一列 $NR:行号
1.4 action
print&printf
expression
awk -F : '$3>10{print $1}' filename
2.sed(流编辑器&对行数据处理)
2.1 语法结构:sed [option] 'script' filename
2.2 option参数
-n:指定行
-e:可指定多个script
-f:从指定文件中读取编辑脚本
-r:支持正则扩展
-i:直接编辑源文件
-i.bak:备份文件并原处编辑
2.3 script参数(定界&操作)
2.3.1 定界(确定操作的数据界限)
:全文编辑
n:指定第n行
n,m: 从第n到m行(闭区间)
n, +s:从第n开始包含后面的s行
1~2:匹配奇数行
2~2:匹配偶数行
2.3.2 操作
d:删除整行 放置到定界后 sed '/sbin/d' filename
p:显示内容,放置到定界后 sed -n 2p filename
a:在匹配行追加内容 sed '1a xxx\nsss' filename
i:在匹配行前增加内容 sed '1i xxx' filename
c:替换匹配行内容 sed 'test/c tt' filename
w:保存内容 sed -n '2p/w /save_dir' filename
!:取反
s:替换内容 sed -i 's/aaa/bbb/g' filename
3.grep(查找&支持正则且均需要转义)
3.1 grep(标准正则匹配)
3.2 egrep(等价于grep -E)
3.3 fgrep(不用正则,搜索快,系统资源使用率低)
-i:忽略大小写
--color:高亮匹配的字符串
-v:显示没有被模式匹配到的行
-o:只显示被模式匹配到的字符串
-E:使用扩展的正则表达式
-e:实现多个选项间的or关系
-n:显示匹配行号
-c:统计匹配的行数
3.4实例
grep -n test /etc/test # 在特定文本内查找test内容并显示行号
grep ^test /etc/test # 在特定文本内查找test开头内容
grep -nv test /etc/test # 在特定文本内查找不是test开头内容并显示行号