1. 程式人生 > 其它 >文字處理命令,linux三劍客之sed

文字處理命令,linux三劍客之sed

一、文字處理命令

1、sort命令

  將檔案內容進行排序

  -n:依照數值的大小排序

  -r:以相反的順序來排序

  -k:以某列進行排序

  -t:指定分割符,預設是以空格為分割符

  擴充套件:vim編輯內容全部替換(:號進入末行模式,輸入1,% s/ */|/g)

2、uniq命令

  用於檢查及刪除文字檔案中重複出現的行列,一般與sort命令結合使用

  -c:在每列旁邊顯示該行重複出現的次數

  -d:僅顯示重複出現的行列

  -u:僅顯示出現一次的行列

3、cut命令

  cut命令用來顯示行中的指定部分,刪除檔案中指定欄位

  -d:指定欄位的分割符,預設的欄位分割符為“Tab”

  -f:顯示指定欄位的內容,與-d一起使用

4、tr命令

  替換或刪除命令

  -d:刪除字元

5、wc命令

  統計檔案的位元組數、字數、行數(注:在Linux系統中,一段連續的數字或字母組合為一個詞)

  -w:統計檔案中單詞的個數,預設以空白字元做為分割符

  -c:統計檔案的Bytes數

  -l:統計檔案的行數

二、linux三劍客之sed

  sed是linux中,流媒體編輯器,主要用來自動編輯一個或多個檔案

  grep:過濾文字

  sed:修改文字

  awk:處理文字

1、sed的格式

  sed [引數] '處理規則' [操作物件]

2、引數

  -e:允許多項編輯

  -n:取消預設輸出

  -i:就地編輯

  -r:支援拓展正則

  -f:指定sed匹配規則指令碼檔案(可以將正則寫入指令碼)

3、定位

  1、數字定位法

    指定行號

  2、正則定位法

    指定正則定位

  3、數字和正則定位法

  4、正則正則定位法

4、sed的編輯模式

  d:刪除

  p:列印

  a:在當前行後新增一行或多行

  i:在當前行之前,插入文字(單獨使用時)

  c:用新文字修改(替換)當前行

  r:在檔案中讀內容

  w:將指定行寫入檔案

  y:將字元轉換成另一個字元

  s:將字串轉換成另一個字串(每一行只替換一次)

  g:全部執行

  i:忽略大小寫(跟s模式一起使用時)

  &:代表前面匹配到的內容

    [root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf

三、案例

1、將nginx.conf中的註釋全部去掉

  [root@localhost ~]# sed '/^ *#/d' /etc/nginx/nginx.conf

2、將nginx.conf中每一行之前增加註釋

  [root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf

3、修改本機的ip

  [root@localhost ~]# sed -i 's/.100/.101/g' /etc/sysconfig/network-scripts/ifcfg-eth[01]

4、將/etc/passwd中的root修改成ROOT

  [root@localhost ~]# sed -i 's/root/ROOT/g' /etc/passwd