第四周sed一章面試題

<font color=red>因爲比較難,附上PPT,沒事還得看</font>linux

下載:https://www.lanzous.com/i5cs9aj 密碼:arka面試


一、刪除centos7系統/etc/grub2.cfg⽂件中全部以空⽩開頭的⾏⾏⾸的空⽩字符。centos

sed -r 's/^[[:blank:]]+//' /etc/grub2.cfgbash

二、刪除/etc/fstab⽂件中全部以#開頭,後⾯⾄少跟⼀個空⽩字符的⾏的⾏⾸的# 和空⽩字符。ide

[root@centos7 ~]# sed -r 's/^#[[:space:]]+//g' /etc/fstabcentos7

三、在centos6系統/root/install.log每⼀⾏⾏⾸增長#號。spa

[root@qqq tmp]# sed 's/^/#/g' /root/install.logcode

四、在/etc/fstab⽂件中不以#開頭的⾏的⾏⾸增長#號。排序

[root@centos7 ~]# sed -r 's/^[^#]/#&/g' /etc/fstab

[root@centos7 ~]# sed -r '/^[^#]/s@^@#@' /etc/fstab

五、處理/etc/fstab路徑,使⽤sed命令取出其⽬錄名和基名。字符串

[root@centos7 ~]# echo "etc/fstab/dd/" | sed -r 's@^(.*)/(.+)$@\1@'
[root@centos7 ~]# echo "etc/fstab/dd/" | sed -r 's@^(.*)/(.+)$@\2@'
dd/

六、利⽤sed 取出ifconfig命令中本機的IPv4地址

[root@centos7 ~]# ifconfig eth0 | sed -rn '/netmask/s#.*net (.*)  net.*#\1#p'
192.168.38.128

七、統計centos安裝光盤中Package⽬錄下的全部rpm⽂件的以.分隔倒數第⼆個字段的重複次數。

[root@centos7 ~]# ls /misc/cd/Packages/*.rpm | sed -r 's/.*\.(.*)\.rpm/\1/g' | sort | uniq -c | sort -rn
   2311 x86_64
    928 noarch
      4 i686

八、統計/etc/init.d/functions⽂件中每一個單詞的出現次數,並排序(⽤grep和 sed兩種⽅法分別實現)。

[root@centos7 ~]# egrep -o "\<[[:alpha:]]+\>"   /etc/init.d/functions  | sort | uniq -c | sort -n

九、將⽂本⽂件的n和n+1⾏合併爲⼀⾏, n爲奇數⾏

[root@centos7 ~]#  seq 10 | sed "1~2N;s/\n/ /" 
1 2
3 4
5 6
7 8
9 10

面試題

一、linux系統中,命令能夠從文本文件的每一行中截取指定的內容的數據。

cut,awk

二、在每一行後增長一空行?

[root@centos7 ~]# sed G /etc/fstab

[root@qqq tmp]# sed -r 's/$/\n/' /etc/passwd

三、在匹配regex的行以後插入一空行?

[root@centos7 ~]# sed '/regex/G' A.txt

[root@qqq tmp]# sed -r '/root/s@$@\n@' /etc/passwd

四、計算文件行數?

[root@centos7 ~]# wc -l /etc/passwd

六、sed將文件test中第50行中的haiwao改成haiwai?

[root@centos7 ~]# sed '50s/haiwao/haiwai/g' test

七、替換一個文件/etc/passwd裏的這root:x:0:0:root:/root:/bin/bash一行第二個root爲test?

cat /etc/passwd| sed '/^root/!d'|sed 's/root/test/2'

[root@qqq tmp]# sed /^root/p -n /etc/passwd | sed 's/root/test/2'
root:x:0:0:test:/root:/bin/bash

八、打印/etc/passwd的奇數行?

[root@qqq tmp]# sed 1~2p /etc/passwd -n


實驗

一、利⽤sed 取出ifconfig ens33命令中本機的IPv4地址

[qqq@ubutnu ~]$ ifconfig ens33 | sed -n 2p | sed -r 's/.*inet (.*)  net.*/\1/'
192.168.38.130

二、刪除/etc/fstab⽂件中全部以#開頭,後⾯⾄少跟⼀個空⽩字符的⾏的⾏⾸的#和空⽩字符

[qqq@ubutnu ~]$ sed 's/^#[[:space:]+]//'  /etc/fstab

三、把/etc/httpd/conf/httpd.conf⽂件內的Linsten 80改成Listen 8081

sed -i 's/Listen 80/Listen 81/g' /etc/httpd/conf/httpd.conf

四、把pets⽂件中全部的dog修改成cat

sed 's/dog/cat/g' pets -i

五、刪除pets⽂件中的第2⾏

sed 2d pets -i

六、僅顯⽰pets⽂件的第2⾏

sed -n 2p pets

七、把pets⽂件的第2⾏顯⽰2遍

sed 2p pets

八、顯⽰pets⽂件的最後1⾏

sed '$p' pets -n

九、顯⽰pets⽂件中包含dog字符串的全部的⾏

sed /dog/p pets -n

十、顯⽰pets⽂件中,包含2或4的⾏之間的全部⾏

[root@centos7 ~]# sed -r '/2/,/4/p'  pets -n
c2aaadog
4
ddog2

sa 4
2

a

十一、顯⽰pets⽂件中,第1⾏到第3⾏之間的全部⾏

[root@centos7 ~]# sed 1,3p pets -n

十二、顯⽰pets⽂件中第2⾏及後⾯的1⾏

[root@centos7 ~]# sed 2,+1p pets -n

1三、顯⽰pets⽂件中第1⾏和dog字符串之間的⾏

[root@centos7 ~]# sed -nr '1,/dog/p' pets 
a
  a
    Q   A
    regex
dd
b
c2aaadog

1四、顯⽰pets⽂件的奇數⾏

[root@centos7 ~]# sed 1~2p pets -n

1五、顯⽰pets⽂件的偶數⾏

[root@centos7 ~]# sed 2~2p pets -n

1六、在pets⽂件的第2⾏的下⼀⾏添加hello

[root@centos7 ~]# sed '2a hello' pets -i

1七、在pets⽂件的第2⾏的下⼀⾏添加2⾏內容爲hello和world

[root@centos7 ~]# sed '2a hello\nworld' pets -i

1八、在pets⽂件的第2⾏的前⼀⾏添加2⾏內容爲hello和world

[root@centos7 ~]# sed '2i hello\nworld' pets -i

1九、把pets⽂件的第2⾏替換爲hello

[root@centos7 ~]# sed '2c hello' pets -i
[root@centos7 ~]# seq 4 | sed '2c hello' 
1
hello
3
4

20、把pets⽂件的第1-3⾏內容,另存爲test.txt⽂件

[root@centos7 ~]# sed 1,3p pets -n > test.txt

2一、在第2⾏後讀⼊test.txt⽂件

[root@centos7 ~]# sed '2r test.txt' pets

2二、不顯⽰第2⾏

[root@centos7 ~]# sed '2!p' test.txt -n

2三、把pets⽂件中的每⾏內容前都編序號顯⽰

[root@centos7 ~]# cat -n pets
[root@centos7 ~]# sed  '=' pets
相關文章
相關標籤/搜索