聯發科天璣 9000 5G 旗艦晶片釋出:臺積電 4nm 製程、Armv9 架構,手機將於明年一季度上市
阿新 • • 發佈:2021-12-16
1. 文字處理命令
# 補充知識點 1. sort命令 預設根據第一個字母排序 用於將檔案內容加以排序 -n 依照數值的大小排序 -r 以相反的順序來排序 -l 以某列進行排序 -t 以指定分隔符,預設是以空格為分隔 2. uniq命令 cat xx.txt | uniq 用於檢測以及刪除文字檔案中重複出現的行列,一般與"sort"命令結合使用 # 先排序再去重,不然只會去除相鄰的重複的行列 -c 在每列旁邊顯示該行重複出現的次數 -d 僅顯示重複出現的行列 -u 僅顯示出現一次的行列 3. cut命令 cat xx.txt | cut -d '|' -f2 cut命令用來顯示行中的指定部分,刪除檔案中的指定欄位 -d 指定欄位的分隔符,預設的欄位分隔符為"tab" -f 顯示指定欄位的內容-fn 4. tr命令 cat xx.txt | tr 123 345 # 非整體替換,所有的1,2,3替換成3,4,5 替換或刪除命令 -d 刪除字元 5. wc命令 wc -l xx.txt 統計,計算數字命令 -c 統計檔案的Bytes數 -l 統計檔案的行數 -w 統計檔案中單詞的個數,預設以空白字元作為分隔符 "注:"在Linux系統中,一段連續的數字或字母組合為一個詞。
2. Linux三劍客之sed
sed是Linux中,流媒體編輯器。
stream Editor
grep:用來過濾文字
sed :用來修改文字
awk :用來處理文字
1. "sed格式:" sed [引數] "處理規則" [操作物件] 2. "引數:" -e 執行多項編輯 -n 取消預設輸出 # sed -e '3d' -e '6d' -n xx.txt -i 就地編輯 # sed -i '5p' 4.txt -r 支援拓展正則 # sed -r '/123/d' 4.txt -f 指定sed匹配規則指令碼檔案 # 檔案中定義了匹配規則r.txt """ vim r.txt sed -f r.txt xx.txt """ 3. "定位:"#(非常重要) 1. 數字定位法 指定行號 sed '3d' xx.txt # 3是數字定位法 sed '2,3d' xx.txt # 第二行到第三行 2. 正則定位法 指定正則定位 sed '/g/d' xx.txt sed '/^g/d' xx.txt 3. 數字和正則定位法 sed '3,/^g/d' xx.txt # 第三行到以g開頭的行都刪除 4. 正則正則定位法 sed '/^g/,/^j/d' xx.txt 4. "sed的編輯模式:" 單引號 sed '3d' xx.txt # 刪除第三行 sed -e '3d' -e '6d' xx.txt 刪除3,6行 # 執行多項編輯 d 刪除 p 列印 # sed -n '5p' xx.txt a 在某一行後新增一行或多行 sed '2axxx' xx.txt # 在第二行之後新增xxx c 用新的文字修改(替換)當前行 sed '2cxxx' xx.txt i 在當前行之前插入文字 # 此功能是單獨使用時 sed '2ixxx' xx.txt r 在檔案中讀內容 r.txt -- /123/d sed '2r r.txt' xx.txt w 將指定行寫入檔案 sed '2w w.txt' xx.txt y 將"字元"轉換成另一個"字元" sed '2y/f/F' xx.txt # 替換字元,不是替換整體 s 將字串轉換成另一個字串 # 每行只替換一次 vim xx.txt 123456710111212s1233443 sed 's/11/22' xx.txt g 全部執行,應用於整行裡面的所有內容 # 是執行,沒有單獨的替換功能 sed 's/11/22/g' xx.txt i 忽略大小寫 # 與s模式一起使用 sed 's/f/abc/gi' xx.txt & 代表前面匹配到的內容
3. 案例
1. 將nginx.conf 中的註釋行全部去掉 sed '/ *^#/d' /etc/nginx/nginx.conf 2. 將nginx.conf 中每一行之前增加註釋 sed 's/.*/#&/g' /etc/nginx/nginx.conf 3. 要求一鍵修改本機的ip 192.168.15.100 -- 192.168.15.101 172.16.2.100 -- 172.16.2.101 sed -i 's#.100#.101#g' /etc/sysconfig/network-scripts/ifcfg-eth[01] 4. 將/etc/passwd中的root修改成ROOT sed -i 's/root/ROOT/g' /etc/passwd