sed 练习题-02

发布于 2018-01-30  376 次阅读


创建实验文件 test.txt
[root@am-01:~/sed#] vim test.txt
[root@am-01:~/sed#] cat test.txt
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
打印某行到某行之间的内容
[root@am-01:~/sed#] sed -n '/\[abcfd]/,/[rty]/p' test.txt
[abcfd]
123
324
444
[rty]
把每个单词的第一个小写字母变大写
[root@am-01:~/sed#] sed 's/\b[a-z]/\u&/g' test.txt
Ert
Fff
**
[Abcfd]
123
324
444
[Rty]
**
Fgfgf
把所有小写变大写
[root@am-01:~/sed#] sed 's/[a-z]/\u&/g' test.txt
ERT
FFF
**
[ABCFD]
123
324
444
[RTY]
**
FGFGF
在文件中某一行最后添加一个数字
[root@am-01:~/sed#] sed 's/^f.*/& 12/' test.txt
ert
fff 12
**
[abcfd]
123
324
444
[rty]
**
fgfgf 12
创建实验文件 1.txt
[root@am-01:~/sed#] sed 's/[a-z]/\u&/g' test.txt > 1.txt
[root@am-01:~/sed#] cat 1.txt
ERT
FFF
**
[ABCFD]
123
324
444
[RTY]
**
FGFGF
大写变小写
[root@am-01:~/sed#] sed 's/[A-Z]/\l&/g' 1.txt
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
创建实验文件 2.txt
[root@am-01:~/sed#] vim 2.txt
[root@am-01:~/sed#] cat 2.txt
a
b
c
d
e
f
删除某关键字的下一行到最后一行
[root@am-01:~/sed#] sed '/c/{p;:a;N;$!ba;d}' 2.txt
a
b
c
创建实验文件 3.txt
[root@am-01:~/sed#] cp /etc/passwd 3.txt
[root@am-01:~/sed#] cat /etc/passwd >> 3.txt
[root@am-01:~/sed#] cat /etc/passwd >> 3.txt
[root@am-01:~/sed#] cat /etc/passwd >> 3.txt
[root@am-01:~/sed#] wc -l 3.txt
108 3.txt
打印 1 到 100 行包含某个字符串的行
[root@am-01:~/sed#] sed -n '1,100'p 3.txt | sed -n '/root/'p
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin