sed 扩展

简介:

练习题:(第一次做题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










本文转自 iekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2043864,如需转载请自行联系原作者
目录
相关文章
|
Shell Perl 自然语言处理
|
Shell Linux Perl
|
Perl Shell