shell 编程中的sed和awk
sed命令
sed:stream editor :一次处理一行内容,处理时,把当前的行存储在临时缓冲区,处理完后,输送到屏幕,不加参数的情况下sed命令不会改变源文件内容,sed命令用法如下:
sed [参数] '命令' file
1.模式:
p ##显示
d ##删除
a ##添加
c ##替换
i ##插入
2.参数:
-n ##只输出处理后的结果
-i ##处理并修改源文件
sed -n ‘/:/p’ /etc/fstab ##显示有:的行
sed -n ‘/^#/p’ /etc/fstab ##显示以#开头的行
sed -n ‘/2018$/p’ /etc/fstab ##显示以2018结尾的行
sed ‘1,4d’ /etc/fstab ##显示除了1到4行之外的所有行

awk命令
awk处理机制:根据模式一次从文件中抽取一行文本,对这行文本进行切片(默认使用空白字符作为分隔符).
awk ‘{print $n}’ test ##$n表示输出第n个字段
awk -F ' ' ‘{print $1,$3}’ test ##指定分隔符,输出第1和3列
awk ‘{print FILENAME,NR}’ /etc/passwd ##输出文件名,和当前操作的行号
awk -F: ‘{print NR,NF}’ /etc/passwd ##输出每次处理的行号,以及当前以":"为分隔符的字段个数