例如:有个文件test的内容如下:
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
怎么能截取
[abcfd]
123
324
444
[rty]
这一部分出来呢?
[root@hf-01 sed]# sed -n '/\[abcfd\]/,/\[rty\]/'p 1.txt //截取[abcfd]到[rty]之间的内容
[abcfd]
123
324
444
[rty]
[root@hf-01 sed]#
[root@hf-01 sed]# sed 's/\b[a-z]/\u&/'g test.txt //把每个单词的第一个小写字母变成大写
Root:X:0:0:Root:/Root:/Bin/Bash
Bin:X:1:1:Bin:/Bin:/Sbin/Nologin
Adas:124:Bdsf:Rto:Pass
Daemon:X:2:2:Daemon:/Sbin:/Sbin/Nologin
Dfdf:Rggo:124
等等等,只截取了一部分
[root@hf-01 sed]#
[root@hf-01 sed]# sed 's/[a-z]/\u&/'g test.txt //把文件中所有小写字母变成大写
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
ADAS:124:BDSF:RTO:PASS
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
DFDF:RGGO:124
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
等等等,只截取了一部分
[root@hf-01 sed]#
[root@hf-01 sed]# sed 's/[A-Z]/\l&/'g test.txt //把文件中所有的大写字符变成小写
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
adas:124:bdsf:rto:pass
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dfdf:rggo:124
等等等,只截取了一部分
[root@hf-01 sed]#
总结
[root@hf-01 sed]# head -n1 test.txt |sed 's/\(^r.*\)/\1 12/' //在以r 字母开头的行,结尾处添加数字123
root:x:0:0:root:/root:/bin/bash 12
[root@hf-01 sed]# head -n1 test.txt |sed 's/\(^r.*\)/& 123/' //在以r 字母开头的行,结尾处添加数字123
root:x:0:0:root:/root:/bin/bash 123
[root@hf-01 sed]# head -n1 test.txt |sed 's/\(^r.*\)/1 123/' //这里是将以r 字母开头的行,替换成1 123
1 123
[root@test200 ~]# cat test
a
b
c
d
e
f
[root@test200 ~]# sed '/c/{p;:a;N;$!ba;d}' test
a
b
c
sed -n '1,100{/abc/p}' 1.txt
sed -n '1,100{/abc/p;/dd/p}' 2.txt