Linux三劍客(grep、sed、awk)基本使用技巧!老男孩Linux運維培訓
老男孩IT教育
常見問題
2022年6月8日 11:30
如果你恰巧是一個經常在服務器上游走的后端,或者正在學習、使用Linux系統,那避免不了熟悉各種命令行的操作,其中,grep、sed、awk被稱為linux三劍客,其使用頻繁,功能強大,請看下文:
如果你恰巧是一個經常在服務器上游走的后端,或者正在學習、使用Linux系統,那避免不了熟悉各種命令行的操作,其中,grep、sed、awk被稱為linux三劍客,其使用頻繁,功能強大,請看下文:
一、grep命令
-n:額外輸出行號,例如過濾出每一行包含“學”的記錄;
-v:排除匹配的行,例如排除包含“學”的行記錄;
-E:支持擴展正則匹配。grep的時候,我們可以按照正則表達式來進行匹配,但在需要擴展正則匹配時,要通過-E指定才能生效。常見的或操作。
-l:只輸出有匹配行的文件名。有時候,我們并不需要輸出匹配的行記錄,僅僅只是需要知道匹配到了行記錄的文件名;
-R:遞歸匹配目錄中的文件內容。有時候,在一個目錄中我們并不知道哪個文件內容包含我們想要的結果,此時,可以查找整個目錄,輸出匹配的文件名以及行記錄;
-A:通過-A(after)指定輸出匹配行后的額外行數,例如,想要額外輸出包含"青"的行記錄后一行,可以指定-A1
二、sed命令
sed的各項操作需要指定一個特定的動作,查找需要制定一個動作為p(print),例如打印出第三行的記錄,需要指定行號加動作3p;
這里必須指定一個選項-n。因為sed
的默認行為是遍歷文本文件的每一行并輸出每一行,假如不帶-n
選項,第三行會輸出兩次=默認輸出一次+命令行指定輸出一次。
所以-n
的作用是取消sed
的默認輸出行為, 一般都只與p組合使用。利用sed
的默認輸出行為,我們可以模擬復制每一行的操作,有時候在特定場景下非常有用;
sed的增加動作有三種:
i:在指定行的上方增加一行;
a:在指定行的下方增加一行;
c:在指定行的地方增加一行,原有行會被覆蓋
三、awk命令
awk
可以通過NR(Number of Record)
指定行號,輸出特定的行,也可以按行號范圍輸出,可以使用{print $列號}
取出列值,awk
取列時,默認是空格為分隔符,可以通過-F
指定分隔符。
老男孩教育Linux運維云計算課程匯集了虛擬化、云計算、安全攻防、Python開發、SRE等技術,課堂效率高、內容豐富全面,由淺入深,循序漸進,幫助學員穩扎穩打,夯實基礎,在有限的時間內幫助學員高效提升,成為符合企業需求的技術型人才。
推薦閱讀:
