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 显示文件的行数
awk ‘{print NF}’ passwd 显示文件的列数
awk ‘BEDIN{NAME=0}{print $1}’ passwd 显示第一列($1)的名字
awk ‘BEDIN{a=5;print a+13}’ passwd 打印a为5,加13为多少。
awk ‘NR==1{print}’ passwd 显示文件第一行