练习题:(第一次做题10-13都不会做)
1、把/etc/passwd 复制到/root/test.txt,用sed打印所有行
[root@centos7-2 tmp]# cat /etc/passwd > /root/test.txt && sed -n '1,$'p /root/test.txt
2、打印test.txt的3到10行
sed -n '3,10p' test.txt
3、打印test.txt 中包含 ‘root’ 的行
sed -n '/root/p' test.txt
4、删除test.txt 的15行以及以后所有行
sed '15,$'d test.txt
5、删除test.txt中包含 ‘bash’ 的行
sed '/bash/'d test.txt
6、替换test.txt 中 ‘root’ 为 ‘toor’
sed 's#root#toor#g' test.txt
7、替换test.txt中 ‘/sbin/nologin’ 为 ‘/bin/login’
sed 's#\/sbin\/nologin#\/bin\/login#g' test.txt
8、删除test.txt中5到10行中所有的数字
sed -n '5,10p' test.txt |sed 's#[0-9]##g'
9、删除test.txt 中所有特殊字符(除了数字以及大小写字母)
sed 's#[^A-Za-z0-9]##g' test.txt
10、把test.txt中第一个单词和最后一个单词调换位置
sed 's/(^[a-zA-Z])([^a-zA-Z].)([^a-zA-Z])([a-zA-Z]*$)/\4\2\3\1/g' test.txt
分为4段:
第一行:root:x:0:0:root:/root:/bin/bash
root :x:0:0:root:/root:/bin / bash
11、把test.txt中出现的第一个数字和最后一个单词替换位置
sed 's#([^0-9][^0-9])([0-9][0-9])([^0-9].)([^a-zA-Z])([a-zA-Z][a-zA-Z]$)#\1\5\3\4\2#' test.txt
12、把test.txt 中第一个数字移动到行末尾
sed 's#([^0-9][^0-9])([0-9][0-9])([^0-9].*$)#\1\3\2#' test.txt
13、在test.txt 20行到末行最前面加 ‘aaa:’
sed '20,$s/^.*$/aaa:&/' test.txt
14、打印1,100行,含有abc的行打印
sed -n '1,100{/abc/p}' 1.txt