1.grep 文本过滤命令
grep 匹配条件 处理文件
- grep root passwd 只有root小写
- grep ^root passwd 前面为root
- grep root$ passwd 后面为root
- grep -i root passwd 不区分大小写
- grep -E "root|ROOT" passwd 扩展在加其它符号后都要加-E
grep中的正则表达式
- grep westos file
- grep w....s file
- grep .....s file
- grep w..... file
grep中字符的匹配次数设定
grep xy file 字符出现[0-任意次]
-E x\?y 字符出现y之前x出现[0-1次]
-E x\+y 字符出现y之前x出现[1-任意次]
- \{n\} 字符出现[n次]
- \{m,n\} 字符出现[最少m次,最多n次]
- \{0,n\} 字符出现[0-n次]
- \{m,\} 字符出现[至少m次]
- x.*y xy之间任意字符都可匹配
2.sed行编辑器
符合模式条件的处理,不符合条件的不予处理
处理完成之后把缓冲区的内容送往屏幕
接着处理下一行,这样不断重复,直到文件末尾
sed对字符的处理
- p 显示
- sed -n ‘/^\#/p' fstab 只显示#开头的行
- sed -n ‘/^\#/!p' fstab 不显示#开头的行
- sed -n ‘/^UUID/p' fstab 以UUID开头的行
- sed -n ‘/1$/p' fstab 以1结尾的行
- sed -n ‘2,6p' fstab 显示2到6行
- sed -n ‘2p;6p' fstab 显示2行和6行
- sed -n ‘/^$/p' fstab 显示空白行
d删除(用法与显示类似)
- sed -n ‘/^\#/d' fstab 删除#开头的行
- sed -n ‘/^\#/!d' fstab 删除不是#开头的行
- sed -n ‘/^UUID/d' fstab 删除UUID开头的行
- sed -n ‘2,6d' fstab 删除2到6行
- sed -n ‘2d;6d' fstab 删除2行和6行
a添加
- sed ‘/\/etc/a123456' fstab 在etc行添加123456
i插入
- sed ‘/\/etc/i123456' fstab 在etc行插入123456
c替换
- sed ‘/\/etc/c123456' fstab 将etc行替换成123456
w写入
- sed ‘/\/etc/wfile' fstab 将etc行写入file中
- sed -n ‘/\/etc/=' fstab etc行在文件中的第几行
- sed ‘G’ fstab 每行加空行隔开
- sed ‘=’ fstab 每行加行号
- sed 's/sbin/12345/g' passwd 把全文的sbin换成12345
- sed '3s/sbin/12345/g' passwd 把第三行的sbin换成12345
- sed '/bin/,/lp/s/sbin/12345/g' passwd 把bin行到lp行的sbin换成12345
3.awk报告生成器
awk会逐行处理文本,支持在处理第一行之前做一些准备工作
以及在处理完最后一行做些总结性质的工作。
BEGIN{}:读入第一行文本前执行,一般用来初始化操作。
{}:逐行处理。
END{}:处理完最后一行文本之后操作,一般用来输出处理结果。
awk基本用法
- awk '{print NR}' passwd 显示passwd文件的行数
- awk '{print NF}' passwd 显示文件的列数
- awk 'BEDIN{NAME=0}{print $1}' passwd 显示第一列元素1($1)的名字
- awk 'BEDIN{a=5;print a+13}' passwd 打印a为5,加13为多少。
- awk 'NR==1{print}' passwd 显示文件第一行