打印文件中特定的某行到某行之间的内容
例如:有个文件test的内容如下:
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
怎么能截取
[abcfd]
123
324
444
[rty]
这一部分出来呢?
[root@hch test]# sed -n '/[abcfd]/,/[rty]/p' test.txt
[abcfd]
123
324
444
[rty]
sed 如何转换大小写字母
sed中,使用\u表示大写,\l表示小写
- 把每个单词的第一个小写字母变大写:
[root@hch test]# sed 's/\b[a-z]/\u&/g' test.txt
Ert
Fff
**
[Abcfd]
123
324
444
[Rty]
**
Fgfgf - 把所有小写变大写:
[root@hch test]# sed 's/[a-z]/\u&/g' test.txt
ERT
FFF
**
[ABCFD]
123
324
444
[RTY]
**
FGFGF - 大写变小写:
sed 's/[A-Z]/\l&/g' filename
sed在文件中某一行最后添加一个数字
sed 's/(^a.)/\1 12/' test.txt
[root@hch test]# sed 's/(^a.)/\1 12/' test.txt
askdj 12
aslkd aslkdjf3e 12
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfjfgfgf 12
sed删除某关键字的下一行到最后一行
[root@hch test]# cat test
a
b
c
d
e
f
[root@hch test]# sed '/c/{p;:a;N;$!ba;d}' test.txt
a
b
c
如何使用sed打印1到100行包含某个字符串的行
[root@hch test]# sed -n '1,100{/df/p}' test.txt
dfsdfs
sdfsfsd
fsdfwefw
[root@hch test]# cat test.txt
a
b
c
d
e
efwe
dfsdfs
sdfsfsd
fsdfwefw
erwe
f
网友评论