复习 扩展sed

2018-01-19  本文已影响0人  hch004

打印文件中特定的某行到某行之间的内容
例如:有个文件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表示小写

  1. 把每个单词的第一个小写字母变大写:
    [root@hch test]# sed 's/\b[a-z]/\u&/g' test.txt
    Ert
    Fff
    **
    [Abcfd]
    123
    324
    444
    [Rty]
    **
    Fgfgf
  2. 把所有小写变大写:
    [root@hch test]# sed 's/[a-z]/\u&/g' test.txt
    ERT
    FFF
    **
    [ABCFD]
    123
    324
    444
    [RTY]
    **
    FGFGF
  3. 大写变小写:
    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

上一篇 下一篇

猜你喜欢

热点阅读