shell编程学习之sed流编辑器

sed

sed是流编辑器,是一个过滤工具,处理行

1、sed参数

p 打印匹配行

= 显示文件行号

a / 在定位行号后附加新文本信息

i / 在定位行号后插入新文本信息

d 删除定位行

c / 用新文本替换定位文本

s 使用替换模式替换相应模式

r 从另一个文件中读文本

w 写文本到一个文件

q 第一个模式匹配完成后推出或立即推出

l 显示与八进制A S C I I代码等价的控制字符

{ } 在定位行执行的命令组

n 从另一个文件中读文本下一行,并附加在下一行

g 将模式2粘贴到/pattern n/

y 传送字符

n 延续到下一输入行;允许跨行的模式匹配语句

2、替换一个或者多个

[test@linux-3 ~]# sed '1s/a/c/' 1.txt

[test@linux-3 ~]# cat 1.txt

a

a

a

b

[test@linux-3 ~]# sed '1s/a/c/' 1.txt

c

a

a

b

[test@linux-3 ~]# sed 's/a/c/g' 1.txt

c

c

c

b

 

3、打印1到3行

 

[test@linux-3 ~]# cat 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[test@linux-3 ~]# sed -n '1,3p' 1.txt #命令

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

4、删除1到3行

 

[test@linux-3 ~]# cat 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[test@linux-3 ~]# sed '1,3d' 1.txt #命令

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

5、选取一个范围

 

[test@linux-3 ~]# cat 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[test@linux-3 ~]# sed -n '/root/,/2/p' 1.txt #命令

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

6、删除第二行(包括第二行)后面的行

 

[test@linux-3 ~]# cat 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[test@linux-3 ~]# sed '2,$d' 1.txt #命令

root:x:0:0:root:/root:/bin/bash

 

7、删除包括某个字符所有的行

 

[test@linux-3 ~]# cat 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[test@linux-3 ~]# sed '/nologin/d' 1.txt #命令

root:x:0:0:root:/root:/bin/bash

 

8、匹配类型:0000:11或者0000:12 生日号

 

[test@linux-3 ~]# cat 3.txt

1986:10 aaaaa

1977:1 bbbbb

1986:11 aaaaa

1979:1 bbbbb

1977:12 bbbbb

1986:12 aaaaa

[test@linux-3 ~]# sed -ne '/[0-9]\{4\}\:1[12]/p' 3.txt

1986:11 aaaaa

1977:12 bbbbb

1986:12 aaaaa

 

9、在某个字符前面加#号,一般用于配置注释

 

[test@linux-3 ~]# cat 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[test@linux-3 ~]# sed 's/root/#&/' 1.txt #命令

#root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

10、删除第一和第二行,并在daemon前面加上#号

 

[test@linux-3 ~]# cat 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[test@linux-3 ~]# sed -e '1,2d' -e 's/daemon/#&/' 1.txt

#daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

11、在某个字符后面读入另一文件

 

[test@linux-3 ~]# cat 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[test@linux-3 ~]# sed '/daemon/r 3.txt' 1.txt #命令

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

1986:10 aaaaa

1977:1 bbbbb

1986:11 aaaaa

1979:1 bbbbb

1977:12 bbbbb

1986:12 aaaaa

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

12、匹配到并写入到另一个文件,但被写放的文件会被覆盖

 

[root@linux-3 ~]# cat 3.txt

root:x:0:0:root:/root:/bin/bash

[root@linux-3 ~]# sed -n '/daemon/w 3.txt' 1.txt

[root@linux-3 ~]# cat 3.txt

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

13、匹配某个字符再追加,一般在匹配的后面追加

[root@linux-3 ~]# sed '/root/a test test' 1.txt

root:x:0:0:root:/root:/bin/bash

test test

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

14、匹配后插入,一般在匹配的前面插入

 

[root@linux-3 ~]# sed '/^daemon/i test test' 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

test test

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

15、匹配以test开头,修改1234/1234/13456变成12/13/476

 

[root@linux-3 ~]# cat txt

test 1234/1234/13456

yoyo abcd/EFGH/MJKL

[root@linux-3 ~]# sed -n '/^test/p' txt |sed 's/[0-9]\{4\}\/[0-9]\{4\}\/[0-9]\{4\}/12\/13\/47/'

test 12/13/476

 

16、同样以txt为例,匹配yoyo,修改 abcd/EFGH/MJKL变成aaaa:aaaa:aaaa

 

[root@linux-3 ~]# cat txt

test 1234/1234/13456

yoyo abcd/EFGH/MJKL

[root@linux-3 ~]# sed -n '/^yoyo/p' txt | sed 's/[a-z]\{4\}\/[A-Z]\{4\}\/[A-Z]\{4\}/aaaa\:aaaa\:aaaa/'

yoyo aaaa:aaaa:aaaa

 

17、删除空格以及空白行

 

[root@linux-3 ~]# cat txt

test 1234/1234/13456

 

yoyo abcd /EFGH/MJKL

[root@linux-3 ~]# sed 's/[[:space:]]//g' txt #删除空格

test1234/1234/13456

 

yoyoabcd/EFGH/MJKL

[root@linux-3 ~]# sed 's/[[:space:]]//g' txt|sed '/^$/d' #删除空格以及空白行

test1234/1234/13456

yoyoabcd/EFGH/MJKL

 

18、除了nologn结尾的,其他删除

 

[root@linux-3 ~]# sed '/nologin$/! d' 1.txt

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

19、小写变成大写

 

[root@linux-3 ~]# sed 'y/root/ROOT/' 1.txt

ROOT:x:0:0:ROOT:/ROOT:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nOlOgin

daemOn:x:2:2:daemOn:/sbin:/sbin/nOlOgin

adm:x:3:4:adm:/vaR/adm:/sbin/nOlOgin

lp:x:4:7:lp:/vaR/spOOl/lpd:/sbin/nOlOgin

 

20、打印第三行后面所有字符

 

[root@linux-3 ~]# sed '3q' 1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

21、root这个单词用[ ]括起来

 

[root@linux-3 ~]# cat 1.txt | sed 's/root\+/[&]/g'

[root]:x:0:0:[root]:/[root]:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

22、查找出root开头的,并把所有单词使用[ ]括起来

 

[root@linux-3 ~]# sed -n '/^root/p' 1.txt | sed 's/\w\+/[&]/g'

[root]:[x]:[0]:[0]:[root]:/[root]:/[bin]/

 

23、在指定行插入

 

[root@linux-3 ~]# sed '2i test' 1.txt

root:x:0:0:root:/root:/bin/bash

test

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

24、在前面加上test 这个单词

 

[root@linux-3 ~]# sed 's/^/test /' 1.txt

test root:x:0:0:root:/root:/bin/bash

test bin:x:1:1:bin:/bin:/sbin/nologin

test daemon:x:2:2:daemon:/sbin:/sbin/nologin

test adm:x:3:4:adm:/var/adm:/sbin/nologin

test lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

25、在后面加上 test这个单词

 

[root@linux-3 ~]# sed 's/$/ test/' 1.txt

root:x:0:0:root:/root:/bin/bash test

bin:x:1:1:bin:/bin:/sbin/nologin test

daemon:x:2:2:daemon:/sbin:/sbin/nologin test

adm:x:3:4:adm:/var/adm:/sbin/nologin test

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin test

 

26、只在单词nologin所在的行后面加上 test这个单词

 

[root@linux-3 ~]# cat 1.txt |sed -n '/nologin$/p' | sed -e 's/$/ test/'

bin:x:1:1:bin:/bin:/sbin/nologin test

daemon:x:2:2:daemon:/sbin:/sbin/nologin test

adm:x:3:4:adm:/var/adm:/sbin/nologin test

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin test

 

本文出自 “游造技术博客” 博客

sed

sed是流编辑器,是一个过滤工具,处理行

 

 

1、sed参数

p 打印匹配行
= 显示文件行号
a / 在定位行号后附加新文本信息
i / 在定位行号后插入新文本信息
d 删除定位行
c / 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件中读文本
w 写文本到一个文件
q 第一个模式匹配完成后推出或立即推出
l 显示与八进制A S C I I代码等价的控制字符
{ } 在定位行执行的命令组
n 从另一个文件中读文本下一行,并附加在下一行
g 将模式2粘贴到/pattern n/
y 传送字符
n 延续到下一输入行;允许跨行的模式匹配语句

 

 

2、替换一个或者多个

[test@linux-3 ~]# sed '1s/a/c/' 1.txt
[test@linux-3 ~]# cat 1.txt
a
a
a
b
[test@linux-3 ~]# sed '1s/a/c/' 1.txt
c
a
a
b
[test@linux-3 ~]# sed 's/a/c/g' 1.txt
c
c
c
b

 

 

3、打印1到3行

[test@linux-3 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[test@linux-3 ~]# sed -n '1,3p' 1.txt  #命令
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

 

4、删除1到3行

[test@linux-3 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[test@linux-3 ~]# sed  '1,3d' 1.txt    #命令
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

5、选取一个范围

[test@linux-3 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[test@linux-3 ~]# sed -n '/root/,/2/p' 1.txt    #命令
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

 

6、删除第二行(包括第二行)后面的行

[test@linux-3 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[test@linux-3 ~]# sed '2,$d' 1.txt        #命令
root:x:0:0:root:/root:/bin/bash

 

 

7、删除包括某个字符所有的行

[test@linux-3 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[test@linux-3 ~]# sed '/nologin/d' 1.txt  #命令
root:x:0:0:root:/root:/bin/bash

 

 

8、匹配类型:0000:11或者0000:12  生日号

[test@linux-3 ~]# cat 3.txt
1986:10 aaaaa
1977:1  bbbbb
1986:11 aaaaa
1979:1  bbbbb
1977:12 bbbbb
1986:12 aaaaa
[test@linux-3 ~]# sed -ne '/[0-9]\{4\}\:1[12]/p' 3.txt
1986:11 aaaaa
1977:12 bbbbb
1986:12 aaaaa

 

 

9、在某个字符前面加#号,一般用于配置注释

[test@linux-3 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[test@linux-3 ~]# sed 's/root/#&/' 1.txt   #命令
#root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

10、删除第一和第二行,并在daemon前面加上#号

[test@linux-3 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[test@linux-3 ~]# sed -e '1,2d' -e 's/daemon/#&/' 1.txt
#daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

11、在某个字符后面读入另一文件

[test@linux-3 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[test@linux-3 ~]# sed '/daemon/r 3.txt' 1.txt  #命令
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
1986:10 aaaaa
1977:1  bbbbb
1986:11 aaaaa
1979:1  bbbbb
1977:12 bbbbb
1986:12 aaaaa
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

12、匹配到并写入到另一个文件,但被写放的文件会被覆盖

[root@linux-3 ~]# cat 3.txt
root:x:0:0:root:/root:/bin/bash
[root@linux-3 ~]# sed -n '/daemon/w 3.txt' 1.txt
[root@linux-3 ~]# cat 3.txt
daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

 

13、匹配某个字符再追加,一般在匹配的后面追加

[root@linux-3 ~]# sed '/root/a test test' 1.txt
root:x:0:0:root:/root:/bin/bash
test test
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

14、匹配后插入,一般在匹配的前面插入

[root@linux-3 ~]# sed '/^daemon/i test test' 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
test test
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

15、匹配以test开头,修改1234/1234/13456变成12/13/476

[root@linux-3 ~]# cat txt
test 1234/1234/13456
yoyo abcd/EFGH/MJKL
[root@linux-3 ~]# sed -n '/^test/p' txt |sed 's/[0-9]\{4\}\/[0-9]\{4\}\/[0-9]\{4\}/12\/13\/47/'
test 12/13/476

 

 

16、同样以txt为例,匹配yoyo,修改 abcd/EFGH/MJKL变成aaaa:aaaa:aaaa

[root@linux-3 ~]# cat txt
test 1234/1234/13456
yoyo abcd/EFGH/MJKL
[root@linux-3 ~]# sed -n '/^yoyo/p' txt | sed 's/[a-z]\{4\}\/[A-Z]\{4\}\/[A-Z]\{4\}/aaaa\:aaaa\:aaaa/'
yoyo aaaa:aaaa:aaaa

 

 

17、删除空格以及空白行

[root@linux-3 ~]# cat txt
test 1234/1234/13456

 

 

yoyo abcd   /EFGH/MJKL
[root@linux-3 ~]# sed 's/[[:space:]]//g' txt     #删除空格
test1234/1234/13456

 

 

yoyoabcd/EFGH/MJKL
[root@linux-3 ~]# sed 's/[[:space:]]//g' txt|sed '/^$/d'  #删除空格以及空白行
test1234/1234/13456
yoyoabcd/EFGH/MJKL

 

 

18、除了nologn结尾的,其他删除

[root@linux-3 ~]# sed '/nologin$/! d' 1.txt
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

19、小写变成大写

[root@linux-3 ~]# sed 'y/root/ROOT/' 1.txt
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nOlOgin
daemOn:x:2:2:daemOn:/sbin:/sbin/nOlOgin
adm:x:3:4:adm:/vaR/adm:/sbin/nOlOgin
lp:x:4:7:lp:/vaR/spOOl/lpd:/sbin/nOlOgin

 

 

20、打印第三行后面所有字符

[root@linux-3 ~]# sed '3q' 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

 

21、root这个单词用[  ]括起来

[root@linux-3 ~]# cat 1.txt | sed 's/root\+/[&]/g'
[root]:x:0:0:[root]:/[root]:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

22、查找出root开头的,并把所有单词使用[  ]括起来

[root@linux-3 ~]# sed -n '/^root/p' 1.txt | sed 's/\w\+/[&]/g'
[root]:[x]:[0]:[0]:[root]:/[root]:/[bin]/

 

 

23、在指定行插入

[root@linux-3 ~]# sed '2i test' 1.txt
root:x:0:0:root:/root:/bin/bash
test
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

24、在前面加上test  这个单词

[root@linux-3 ~]# sed 's/^/test /' 1.txt
test root:x:0:0:root:/root:/bin/bash
test bin:x:1:1:bin:/bin:/sbin/nologin
test daemon:x:2:2:daemon:/sbin:/sbin/nologin
test adm:x:3:4:adm:/var/adm:/sbin/nologin
test lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

 

25、在后面加上  test这个单词

[root@linux-3 ~]# sed 's/$/ test/' 1.txt
root:x:0:0:root:/root:/bin/bash test
bin:x:1:1:bin:/bin:/sbin/nologin test
daemon:x:2:2:daemon:/sbin:/sbin/nologin test
adm:x:3:4:adm:/var/adm:/sbin/nologin test
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin test

 

 

26、只在单词nologin所在的行后面加上 test这个单词

[root@linux-3 ~]# cat 1.txt |sed -n '/nologin$/p' | sed -e 's/$/ test/'
bin:x:1:1:bin:/bin:/sbin/nologin test
daemon:x:2:2:daemon:/sbin:/sbin/nologin test
adm:x:3:4:adm:/var/adm:/sbin/nologin test
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin test

 

本文出自 “游造技术博客” 博客

您可以选择一种方式赞助本站

支付宝转账赞助

支付宝扫一扫赞助

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

图片 表情