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计算某个段的总和,示例如下: