sed练习题
把/etc/passwd复制到/root/1.txt下面,作为我们练习的文件。
注:下面加grep都是为了打印行号
1.打印1.txt的3到10行
grep -n ‘.*’ 1.txt |sed ‘3,10p’ -n
2. 打印1.txt中包含‘root’的行
grep -n ‘.*’ 1.txt |sed ‘/root/p’ -n
3.删除1.txt的15行及以后所有行
grep -n ‘.*’ 1.txt |sed ‘15,$d’
4.删除1.txt中包含‘bash的行
grep -n ‘.*’ 1.txt |sed ‘/bash/d’
5.替换1.txt中‘root’为‘toor’
grep -n ‘.*’ 1.txt |sed ‘s/root/toor/g’
6.替换1.txt中‘/sbin/nologin’为’/bin/login’
grep -n ‘.*’ 1.txt |sed ‘s/\/sbin\/nologin/\/bin\/login/g’(将需要转换的/使用\转义)
7.删除1.txt中5到10行中所有的数字
sed -e ‘5,10p;s/[0-9]//g’ -n 1.txt
8.删除1.txt中所有特殊字符(除了数字以及大小写字母)
sed 's/[^0-9a-zA-Z]//g 1.txt
9.把1.txt中第一个单词和最后一个单词调换位置
10.把1.txt中出现的第一个数字和最后一个单词调换位置
11.把1.txt中出现的第一个数字移动到行末尾
12.在1.txt中20行到末行最前面加‘aaa’