sed 面试题


#oldboy
 my qq num is 49000448.$

not 4900000448.
my god ,i am not oldbey,but clsn!$
#oldboy
my name is oldboy.$

  not oldman.
 my god ,i am not oldbey,but clsn!$
i like linux

1:Unix中在当前目录下所有.cc 的文件中找到含有“asiainfo”内容的文件,命令为
2:在/tmp/file.txt文件中不以#开头的行的行首增加#号
[root@web01 shell]# sed -n '/^[ a-Z]/p' /tmp/file.txt | sed 's/^/#/g'

3:用命令行更改/tmp/file.txt文件,把里面所有的“name”更改为“address”
[root@web01 shell]# sed 's/name/address/g' /tmp/file.txt 

4:利用sed命令将/tmp/file.txt中所有的回车替换成空格?
[root@web01 shell]# cat -A /tmp/file.txt | sed 's/^\$//g'

5:为/tmp/file.txt文件中前2行的行首加#号
[root@web01 shell]# sed -n '1,2p' /tmp/file.txt|sed 's/^/#/g'

6:打印/tmp/file.txt文件中的第5行
[root@web01 shell]# sed -n '5p' /tmp/file.txt 

7:删除/tmp/file.txt文件中的带特殊字符的行
[root@web01 sed]# sed -i '/\$/d' /tmp/file.txt

8:删除#号及#后面的所有空白字符;
[root@web01 sed]# sed -n '/^\#/p' /tmp/file.txt | sed 's/^\#//g'

9:查找/tmp/file.txt文件中1到10行之间,同时将"qq"替换为"we","not"替换"no"
[root@web01 sed]# sed  '1,10s/we/g' /tmp/file.txt | sed 'st/g'

10:使用sed命令打印出/tmp/file.txt文件的第一行到第三行
[root@web01 sed]# sed -n '2,3p' /tmp/file.txt 

11:删除文件/tmp/file.txt中所有带有数字的行
[root@web01 sed]# sed -i '/[0-9]/d' /tmp/file.txt 

12:删除/tmp/file.txt文件第3行到第10行的内容?
[root@web01 sed]# sed -i '3,10d' /tmp/file.txt 

13:删除/tmp/file.txt文件中的行首的空白字符。
[root@web01 sed]# sed -i 's/ //g'  /tmp/file.txt

14:使用sed将/tmp/file.txt文件中第2行的448替换成558
[root@web01 sed]# sed -i '2s/448/558/g'  /tmp/file.txt

15:使用sed将/tmp/file.txt文件中所有$删除
[root@web01 sed]# sed 's/\$//g' /tmp/file.txt

16:将/tmp/file.txt中所有小写字母替换成大写字母
[root@web01 sed]# sed 's#[a-z]#\u&#g' /tmp/file.txt 

17:将/tmp/file.txt文件中第2到第8行之间所有大写字母替换成小写字母
[root@web01 sed]# sed 's#[a-z]#\u&#g' /tmp/file.txt | sed '2,8s/[A-Z]/\l&/g'

18:使用sed找出/tmp/file.txt文件中包含oldboy的行
[root@web01 sed]# sed -n '/oldboy/p' /tmp/file.txt 

19:将/tmp/file.txt文件中以;结尾的行,行首插入#
[root@web01 sed]# sed -n '/;$/p' /tmp/file.txt | sed 's@^@#@g'
#i like linux;
20:将/tmp/file.txt文件中第3和第5行的大写字母替换成小写字母
[root@web01 sed]# sed -n '3,5p' /tmp/file.txt |sed 's#[a-z]#\u&#g'|sed 's/[A-Z]/\l&/g'

21:删除/tmp/file.txt文件中第2行到下一个以#号开头的行之间所有空行
[root@web01 sed]# sed -n '2,/^\#/p' /tmp/file.txt |sed -r '/^$/d'

22:删除file.txt文件中的空行
[root@web01 sed]# sed -r '/^$/d' /tmp/file.txt 

23:删除/tmp/file.txt文件中所有以#开头的行的行首的#
 [root@web01 sed]# sed -n '/^#/p' /tmp/file.txt | sed 's/#//g'
 
24:使用sed将selinux彻底关闭
[root@web01 sed]# sed '/^SELINUX=/c SELINUX=disabled' /etclinux/config
disabled  enforcing

25:修改passwd文件中第4行到第7行中所有的/sbinlogin为/bin/bash
[root@web01 sed]# sed -i '4,7s/\/sbin\login/\/bin\/bash/g' passwd 
[root@web01 sed]# sed -i 's#/sbinlogin#/bin/bash#g' passwd

26:把/目录下所有以.txt结尾的文件中包含oldgirl的字符串全部替换为oldboy
[root@web01 /]# find /root/ -type f -name '*.txt' | xargs sed -i 's/oldgirl/oldboy/g'
[root@web01 /]# sed -i 's#oldgirl#oldboy#g' $(find / -type f -name "*.txt")

27:passwd文件的第2、8行前面都追加 "Insert Line Before"
[root@web01 sed]# sed -i '2,8i "Insert Line Before" ' passwd

28:将passwd文件的内容,添加到/tmp/file.txt文件中第3行的后面
[root@web01 sed]# sed -i '3r /rootelld/passwd' /tmp/file.txt

29:使用sed命令打印出系统版本
hostnamectl|sed -nr '7s#(^.*CentOS)(.*)(\(.*$)#\2#gp'
 Linux 7 
30:利用sed 取出ifconfig命令中本机的IPv4地址
[root@web01 sed]# ifconfig eth0|sed -nr '2s#(^.*inet)(.*)(net.*$)#\2#gp'
 10.0.0.7  
[root@web01 sed]# ifconfig eth0|sed -nr '2s#(.*inet)(.*)(net.*)#\2#gp'
 10.0.0.7  
 
31:把data目录及其子目录下所有以扩展名.txt结尾的文件中包含oldgirl的字符串全部替换为oldboy.
[root@web01 ~]# find /data -type f -name "*.txt"|xargs sed -i 's#oldgirl#oldboy#g'

你可能感兴趣的:(sed 面试题)