参考:
《跟老男孩学Linux运维:核心系统命令实战》
sed:stream editor
增删改查
增
seq 9 | sed '2a liunx' #在第2行后面增加
输出
1
2
liunx
3
4
5
6
7
8
9
seq 9 | sed '2i liunx' #在第2行前面增加
输出为
1
liunx
2
3
4
5
6
7
8
9
删
seq 9 | sed '2d' # 删除第2行
输出为
1
3
4
5
6
7
8
9
改
seq 12 | sed 's/1/linux/' # 将所有行中第一个1换成linux,如果只替换第2行到第4行用sed '2,4s/1/linux/'
输出为
linux
2
3
4
5
6
7
8
9
linux0
linux1
linux2
seq 12 | sed 's/1/linux/g' # 将所有行中所有换成linux
输出为
linux
2
3
4
5
6
7
8
9
linux0
linuxlinux
linux2
替换中有特殊符号的处理方法
- 有单引号’,就将命令中的单引号改为双引号"
sed -i "s/'a'/'b'/g" file.txt
- 有/,就将命令中的/改为#
sed -i "s/'a/b/c'/'b/c/e'/g" file.txt
对文件操作
-i :直接修改读取的文件内容,而不是输出到终端
sed -i 's/1/linux/g' numbers.txt
终端没有输出,文件numbers.txt直接修改了