文字處理命令,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