1、把/etc/passwd 复制到/root/test.txt,用sed打印所有行;
sed 'p' 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/' test.txt
7、替换test.txt中’/sbin/nologin’为’/bin/login’
sed 's#/sbin/nologin#/bin/login/#' test.txt
8、删除test.txt中5到10行中所有的数字;
sed '5,10s/[0-9]//' test.txt
9、删除test.txt 中所有特殊字符(除了数字以及大小写字母);
sed 's/[^(a-z)(A-Z)(0-9)]//g' test.txt
10、在test.txt 20行到末行最前面加’aaa:’ 在此处的&是将^.*内容进行复制,表示和前面匹配的结果相同
sed '20,$s/^.*$/aaa:&' test.txt
11、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
sed -r 's/^\s*//' /etc/grub2.cfg
12、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
sed -rn 's/^\s+(.*)/\1/p' /etc/fstab
13、在centos6系统/root/install.log每一行行首增加#号
sed 's/^.*$/&/' root/insall.log
14、在/etc/fstab文件中不以#开头的行的行首增加#号
sed 's/^[^#]/#&/' /etc/fstab
15、处理/etc/sysconfig/network-scripts/路径,使用grep和sed命令取出其目录名和基名
基名是什么意思?
基名相当于绝对路径中最后一个子目录或文件的名称,
例如:/etc/sysconfig/network 基名就是network;/etc/sysconfig 基名就是 sysconfig
可以使用basename命令取出绝对路径的基名。例如:basename /etc/sysconfig/network
18、打印在west和east之间的模式范围内的所有行
sed -n '/west/,/east/ p' q1
19、把指定的行north写入到一个文件newfile中
sed '/\<north\>/ w newfile/' q1 \<\>地址定界符
20、只打印找到north的行
sed -n -r '/\<north\>/p' q1
21、在north行后面添加“this is test”
sed '/\<north\>/ a this is test' q1
22、把Jon的名字改成Jonathan.
sed 's/\<Jon\>/Jonathan' w1
23、删除头三行
sed '1,3d' w1
24、显示5-10行
sed -n '5,10p' w1
25、删除包含Lane的行.
sed '/Lane/d' w1
26、显示所有生日在November-December之间的行
sed -n '/November/,/December/p' w1
27、把三个星号(***)添加到以Fred开头的行
sed -n 's/^Fred.*/***&/p' w1
sed -n '/^Fred/ s/^/***/p' w1
28、用JOSE HAS RETIRED取代包含Jose的行
sed '/Jose/ c this is test ' w1
29、把Popeye的生日改成11/14/46
sed -n 's#3/19/35#11/14/46#p' w1
30、删除所有空白行
sed 's/[[:space:]]//g' w1