9.4/9.5 sed
9.6/9.7 awk
一、sed
sed工具介绍(替换,替换指定的字符)

创建一个sed目录,把passwd文件拷贝进来,方便学习

只显示我们需要查找的内容显示出来,示例如下: -n

在grep中使用的特殊字符如(^$*等) 都可以在sed中使用
指定一个区间打印,比如指定一个区域2-3行,示例如下: -n

sed命令加上-e选项可以实现多个行为,示例如下: -e

如果需求说查找一个文件,把bus不管大小写都列出来: l(大写字母i)

删除某些行(并非删除),把剩下来行数都显示出来,示例如下: d


sed真正删除选中的行数,示例如下: -i

-i还可以指定删除某个字符的行,示例如下: //

全局指定替换1, 10行。 s


调整两个字符串的位置
扩展正则选项 (类似grep的-E): -r
第一段和最后一段替换位置


查看一个文档当中,所有的数字不包含字符

如果给文档前面统一添加字符串,比如aaa,示例如下:

二、awk
awk工具介绍

awk截取文档中的某个段落,示例如下:
-F选项的作用是指定分隔符,如果不加-F选项,以空格或者tab为分隔符
print为打印的动作,用来打印某个字段。$1为第一段,$2为第二段,$0表示整行
示例1:

示例2,打印出来所有的内容:$0

匹配字符或者字符
打印出来包含oo的行


打印第一行的第一段包含oo的行

多次打印,多次匹配test,示例如下:

条件操作符

示例1:,精确匹配:

示例2,列出来第三段大于等于500的行打印出来

示例3,! =表示不匹配,第七段不等于/sbin/nologin的有哪些

可以使用&&和||,它们分别表示并且和或者,用法如下:

||或者的用法:

awk的内置变量

OFS的用法如下,print打印时的分隔符:

NR表示行,NF表示段,命令介绍:



用NR列出前10行

还可以指定条件匹配一起使用

awk中的数学运行
awk可以更改段值,示例如下:

上例中切割没有分隔符,可以OFS定义一下分隔符,示例如下:

awk匹配root的第一行有哪些,示例如下:

awk计算某个段的总和,示例如下:
