sed命令

sed

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

sed命令中的a命令

a命令用于在指定行后添加文本。它的语法如下:

sed '行号 a 要添加的文本' 文件名

其中,行号表示要在哪一行后添加文本,要添加的文本是要添加的具体内容。

[root@localhost ~]# vim qwer
[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed '1ahelloe world' qwer 
aa223
helloe world
bb2312
cc98924
dd23123
1123134
2314124


[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed '1a\        helloe world' qwer 
aa223
        helloe world
bb2312
cc98924
dd23123
1123134
2314124

sed命令中的i命令

i命令用于在指定行前插入文本。它的语法如下:

sed '行号 i 要插入的文本' 文件名

其中,行号表示要在哪一行前插入文本,要插入的文本是要插入的具体内容。

[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed '2ipppwww' qwer 
aa223
pppwww
bb2312
cc98924
dd23123
1123134
2314124

sed命令中的c命令

c命令用于替换指定行的文本。它的语法如下:

sed '行号 c 要替换的文本' 文件名

其中,行号表示要替换的行号,要替换的文本是要替换的具体内容。

[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed '2c123helloe world' qwer 
aa223
123helloe world
cc98924
dd23123
1123134
2314124

[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed '$c778899' qwer      # $表示最后一行
aa223
bb2312
cc98924
dd23123
1123134
778899

sed命令中的n命令

n命令用于打印指定行的文本。它的语法如下:

sed -n '行号 p' 文件名

其中,行号表示要打印的行号。

[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed -n '3p' qwer 
cc98924

sed命令中的d命令

d命令用于删除指定的行。它的语法如下:

sed '行号 d' 文件名
[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
#删除第一行内容
[root@localhost ~]# sed '1d' qwer
bb2312
cc98924
dd23123
1123134
2314124

#删除2至4行的内容
[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed '2,4d' qwer 
aa223
1123134
2314124

sed命令中的s命令

s命令用于替换文本中的字符串,它的语法如下:

sed s/模式/替换字符串/[标志]
其中,模式是要匹配的字符串模式,可以是正则表达式或简单的字符串。替换字符串是要替换匹配到的模式的字符串。标志是可选的,用于指定替换的行为。

以下是一些常用的标志:

g:全局替换,替换所有匹配到的模式,默认只替换第一个匹配到的模式。
i:忽略大小写,不区分大小写进行匹配。
n:只打印替换后的行,不打印原始行。
p:打印替换后的行和原始行。
#替换第一个匹配到的字符串
[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed 's/223/44444/' qwer 
aa44444
bb2312
cc98924
dd23123
1123134
2314124

#全局替换所有匹配到的字符串
[root@localhost ~]# cat qwer 
aa223
bb2312
cc98924
dd23123
1123134
2314124
[root@localhost ~]# sed 's/2/A/g' qwer 
aaAA3
bbA31A
cc989A4
ddA31A3
11A3134
A3141A4

#忽略大小写进行替换
[root@localhost ~]# cat qwer 
hello world
AABBCC
aa223
bb2312
cc98924
dd23123
1123134
2314124

[root@localhost ~]# sed 's/AABBCC/aabbcc/i' qwer 
hello world
aabbcc
aa223
bb2312
cc98924
dd23123
1123134
2314124

sed命令中的N命令

sed命令中,N命令用于将下一行添加到模式空间中,并用换行符分隔。这可以用于在对多行文本进行处理时,将多行合并为单行。

N命令没有参数,它只是简单地将下一行添加到模式空间中。当sed命令处理输入时,它会逐行读取文本,并将每一行放入模式空间中进行处理。N命令可以在模式空间中添加下一行,以便一次处理多行。

[root@localhost ~]# cat file.txt
aa 1
bb 2
cc 3
dd 4
#将每两行合并为一行
[root@localhost ~]# sed 'N;s/\n//' file.txt
aa 1 bb 2
cc 3 dd 4
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值