Sed及Vim作業

  Sed及Vim作業題:

    1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符

   [root@localhost 7 ~]# sed -r  's/^[[:space:]]+//' /etc/grub2.cfg

    blob.png

    2、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空白字符的行的行首的#和空白字符

   [root@localhost test]# sed 's/^#[[:space:]]\+//' /etc/fstab   //此符合題目要求
   [root@localhost test]# sed -r 's/^(#|#[[:space:]]+)//' /etc/fstab //此命令只要有“#”就刪除

   blob.png

blob.png

    3、在/root/install.log每一行行首增加#號

   [root@localhost test]# sed 's/^/#/' /root/install.log

    blob.png

    4、在/etc/fstab文件中不以#開頭的行的行首增加#號

   [root@localhost test]# sed 's/^[^#]/#&/' fstab

    blob.png

    5、處理/etc/fstab路徑,使用sed命令取出其目錄名和基名

[root@localhost test]# echo "/etc/sysconfig/network-scripts/" | sed -r 's@(.*/)([^/]+/?)$@\1@'
        //此處后向引用中"\1"為目錄"\2"為基名,需手動更改

    blob.png

    6、利用sed 取出ifconfig命令中本機的IPv4地址

[root@localhost test]# ifconfig | sed '2!d' | sed  -r 's@.*inet.addr:(.*)B.*@\1@'  
       //僅用于centos 6

blob.png

    7、統計centos安裝光盤中Package目錄下的所有rpm文件的以.分隔倒數第二個字段的重復次數

[root@localhost test]# ls /mnt/Packages/* | sed -r 's@.*\.(.*)\.rpm$@\1@' | sort | uniq -c

blob.png

    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

      0{8S286)CT]@TW%UV`BBE5U.png

       解析:

        在命令行中輸入下方圖片最后一行命令,轉換原有的/etc/sysconfig/init為/var/log

        符號“%”:表示地址范圍為全文

         s@@@:表示查找內容替換(其中符號"@“可以使用任意字符,但三個必須一致)

         g :修飾符,表示全局替換

       

    9、刪除/tmp/fstab文件中所有以#開頭,且#后面至少有一個空白字符的行的行首的#號;

[root@CentOS 7 ~]# vim /tmp/fstab

         blob.png

    解析:

          在命令行中輸入下方圖片最后一行命令,把原有的符號“#”開頭緊跟至少一個空格的行的行首的#號刪除掉。(注意:只刪除“#”,不刪除空格)

    符號“%”:表示地址范圍為全文

     s@@@:表示查找內容替換(其中符號"@“可以使用任意字符,但三個必須一致)

     g :修飾符,表示全局替換

     末行模式內輸入命令: (  :%s@^\(#\)[[:space:]]\+@ @g )

        其中:第一個符號“@”和第二個符號“@”之間的內容為模式(pattern),支持使用正則表達式,來對需要查找的內容進行模式匹配

        第二個符號“@”和第三個符號“@”之間的內容有個空格,表示將之間模糊匹配到的內容替換為一個空格(因為題目要求只刪除符號“#”,原有的空格還在,這里把符號“#”和其后面的空格替換為一個空格,就滿足題目要求了)

原創文章,作者:Lii,如若轉載,請注明出處:http://www.www58058.com/31909

(0)
LiiLii
上一篇 2016-08-09 11:48
下一篇 2016-08-09 16:04

相關推薦

  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 2、取出最后登錄到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存 至/tmp/maxusers.txt文件中。 5、取出當前主機…

    Linux干貨 2016-11-21
  • 企業面試題

    要求: 將一下數據進行排序(字母部分已小到大排序) 101.37.8.249 wz417-419/wz119-125/wz7-16/wz571/wz544/wz1-6101.37.21.19 wz545/wz453-456/wz441-444116.62.4.21 wz106-118/wz514-516/wz581/wz190-199/wz572101.37…

    Linux干貨 2017-06-27
  • 基于Keepalived實現LVS雙主高可用集群

    前言 前面說過基于heartbeat的LVS高可用方案,今天帶來另一種解決方案:基于Keepalived實現LVS雙主高可用集群。什么是Keepalived呢,keepalived觀其名可知,保持存活,在網絡里面就是保持在線了, 也就是所謂的高可用或熱備,用來防止單點故障的發生。本文將詳細講述Keepalived工作原理及高可用解決方案的實現。 相關介紹 K…

    Linux干貨 2015-06-16
  • 密碼保護:測試信息, 順便貼上以前年少輕狂的內容.(未整理)

    無法提供摘要。這是一篇受保護的文章。

    Linux干貨 2017-07-11
  • Linux文件根目錄

    / 表示為根目錄/├── bin  存放用戶使用的基本命令(可執行程序,二進制文件)  不能單獨分區├── boot   跟內核有關的文件 grub  內核和BootLoader ├── cgroup   用來資源限制資源隔離 docker 容器化├── dev(device )設備文件&…

    2017-03-27
  • 第九周博客作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現 #!/bin/bash declare -i sum=0 declare -i sum_nologin=0 for i in $(cut -d: -f7 /etc/passwd);do if…

    Linux干貨 2017-06-06
欧美性久久久久