sed
1.匹配功能
1) # sed -n '/ 字符串/'p 文件名
2)上述功能都支持特殊字符 . * +等
但是使用+的时候需要脱义\ 如果不想使用\ 需要给sed加上-r选项
3)支持{}:匹配多次前面的字符
4)支持或者|
5)打印指定行# sed -n '行号'p 文件名
6)打印指定范围的行# sed -n '开始行号,结束行号'p 文件名
7)打印指定的开始行到结束行,结束行用$表示
8)选项-e
表示要在一行命令进行多个操作
如上图既打印了第一行,又匹配了bus,如果两个操作结果有重合的行,那么重合的行会打印两次
9)不区分大小写 加上I
2.其他功能
1)d 删除功能
删除指定行后展示到屏幕,文件内容未被删除
上述命令加上-i选项后则会删除文件内容
d还可以删除指定内容的行
2)替换功能s
# sed '起始行,结束行s/查找字符串/替换字符串/g' 文件名 //替换字符串
上图中的命令表示的意思是:将test.txt文件中第一行到第五行中的bin全部查找出来然后替换为ain,最后在屏幕上将替换后的整个文件打印出来
被替换的字符串可以为正则表达式,如下图
例:将下图行中前十行的第一段和最后一段调换顺序
使用命令# head test.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3\2\1/'
其中的\3表示查找内容的第三段,在命令中是表示将第三段内容放在第一段的位置,运行结果如下
需求:删除文档中所有英文字符
使用命令# sed 's/[a-zA-Z]//g' 文件名
需求:将所有行前面加上一个字符串
使用命令 # sed -r 's/(.*)/字符串&/' 文件名
其中&表示前面查找的内容,可以使用\1代替&