版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
sed是一种包括在所有unix平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取,替换,删除,新增的命令。
功能:字符串替换命令
格式:sed [选项] ‘[动作]’ 文件名
选项:
-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。不会修改文件的原始内容,只会将显示到屏幕
-e:允许对输入数据应用多条sed命令编辑
-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
动作:
a:追加,在当前行后添加一行或多行
c:行替换,用c后面的字符串替换原数据行
i:插入,在当期行前插入一行或多行。
d:删除,删除指定的行
p:打印,输出指定的行。
s:字符串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字符串/新字符串/g”(和vim中的替换格式类似)
示例:行数据操作
打印第二行,一定添加-n,如果不加-n会把所有内容输出,并且会出现重复行。
[root@localhost home]# sed '2p' student.txt
ID Name gender Mark
1 furong F 88
1 furong F 88
2 fengjie F 60
3 cang F 70
[root@localhost home]# sed -n '2p' student.txt
1 furong F 88
[root@localhost home]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
删除
[root@localhost home]# cat student.txt
ID Name gender Mark
1 furong F 88
2 fengjie F 60
3 cang F 70
[root@localhost home]# sed '2d' student.txt
ID Name gender Mark
2 fengjie F 60
3 cang F 70
[root@localhost home]# sed '2,4d' student.txt //删除2-4行
ID Name gender Mark
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
[root@localhost home]# sed '2d' student.txt
ID Name gender Mark
2 fengjie F 60
3 cang F 70
[root@localhost home]# sed '2,4d' student.txt
ID Name gender Mark
[root@localhost home]# sed '2a piaoliang jiushi renxing' student.txt
ID Name gender Mark
1 furong F 88
piaoliang jiushi renxing
2 fengjie F 60
3 cang F 70
[root@localhost home]# sed '2i piaoliang jiushi renxing' student.txt
ID Name gender Mark
piaoliang jiushi renxing
1 furong F 88
2 fengjie F 60
3 cang F 70
[root@localhost home]# cat student.txt
ID Name gender Mark
1 furong F 88
2 fengjie F 60
3 cang F 70
[root@localhost home]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
[root@localhost home]# cat student.txt
ID Name gender Mark
1 furong F 88
2 fengjie F 60
3 cang F 70
[root@localhost home]# sed '4c cang bujige' student.txt
ID Name gender Mark
1 furong F 88
2 fengjie F 60
cang bujige
[root@localhost home]# cat student.txt
ID Name gender Mark
1 furong F 88
2 fengjie F 60
3 cang F 70
[root@localhost home]# sed '4s/70/100/g' student.txt
ID Name gender Mark
1 furong F 88
2 fengjie F 60
3 cang F 100
[root@localhost home]# sed -i '4s/70/100/g' student.txt
[root@localhost home]# cat student.txt
ID Name gender Mark
1 furong F 88
2 fengjie F 60
3 cang F 100
[root@localhost home]# sed -e 's/furong//g;s/fengj//g' student.txt
ID Name gender Mark
1 F 88
2 ie F 60
3 cang F 100
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e9f16cbbc2.css" rel="stylesheet">
</div>
</article>