Sed及Vim作業題:
1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符
[root@localhost 7 ~]# sed -r 's/^[[:space:]]+//' /etc/grub2.cfg
2、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空白字符的行的行首的#和空白字符
[root@localhost test]# sed 's/^#[[:space:]]\+//' /etc/fstab //此符合題目要求 [root@localhost test]# sed -r 's/^(#|#[[:space:]]+)//' /etc/fstab //此命令只要有“#”就刪除
3、在/root/install.log每一行行首增加#號
[root@localhost test]# sed 's/^/#/' /root/install.log
4、在/etc/fstab文件中不以#開頭的行的行首增加#號
[root@localhost test]# sed 's/^[^#]/#&/' fstab
5、處理/etc/fstab路徑,使用sed命令取出其目錄名和基名
[root@localhost test]# echo "/etc/sysconfig/network-scripts/" | sed -r 's@(.*/)([^/]+/?)$@\1@' //此處后向引用中"\1"為目錄"\2"為基名,需手動更改
6、利用sed 取出ifconfig命令中本機的IPv4地址
[root@localhost test]# ifconfig | sed '2!d' | sed -r 's@.*inet.addr:(.*)B.*@\1@' //僅用于centos 6
7、統計centos安裝光盤中Package目錄下的所有rpm文件的以.分隔倒數第二個字段的重復次數
[root@localhost test]# ls /mnt/Packages/* | sed -r 's@.*\.(.*)\.rpm$@\1@' | sort | uniq -c
8、復制etc/rc.d/init.d/functions文件至/tmp目錄;替換/tmp/functions文件中的/etc/sysc onfi g/in it為/var/log;
[root@CentOS 7 ~]# cp /etc/rc.d/init.d/functions /tmp [root@CentOS 7 ~]# vim /tmp/functions
解析:
在命令行中輸入下方圖片最后一行命令,轉換原有的/etc/sysconfig/init為/var/log
符號“%”:表示地址范圍為全文
s@@@:表示查找內容替換(其中符號"@“可以使用任意字符,但三個必須一致)
g :修飾符,表示全局替換
9、刪除/tmp/fstab文件中所有以#開頭,且#后面至少有一個空白字符的行的行首的#號;
[root@CentOS 7 ~]# vim /tmp/fstab
解析:
在命令行中輸入下方圖片最后一行命令,把原有的符號“#”開頭緊跟至少一個空格的行的行首的#號刪除掉。(注意:只刪除“#”,不刪除空格)
符號“%”:表示地址范圍為全文
s@@@:表示查找內容替換(其中符號"@“可以使用任意字符,但三個必須一致)
g :修飾符,表示全局替換
末行模式內輸入命令: ( :%s@^\(#\)[[:space:]]\+@ @g )
其中:第一個符號“@”和第二個符號“@”之間的內容為模式(pattern),支持使用正則表達式,來對需要查找的內容進行模式匹配
第二個符號“@”和第三個符號“@”之間的內容有個空格,表示將之間模糊匹配到的內容替換為一個空格(因為題目要求只刪除符號“#”,原有的空格還在,這里把符號“#”和其后面的空格替換為一個空格,就滿足題目要求了)
原創文章,作者:Lii,如若轉載,請注明出處:http://www.www58058.com/31909