grep 命令
grep?在文件(或命令輸出)中搜索指定正則表達式,并且在標準輸出中輸出匹配的行。
樣例
顯示文件 /etc/passwd 中用戶 gacanepa 的信息,忽略大小寫。
#grep-i gacanepa /etc/passwd
顯示 /etc 文件夾下所有 rc 開頭并跟隨任意數字的內容。
#ls-l /etc |grep rc[0-9]
tr 命令使用技巧
tr?命令可以用來從標準輸入中轉換(改變)或者刪除字符,并將結果寫入到標準輸出中。
樣例
把 sortuniq.txt 文件中所有的小寫改為大寫。
#cat sortuniq.txt |tr[:lower:][:upper:]
壓縮ls –l輸出中的分隔符為一個空格。
#ls-l |tr-s ' '
cut 命令使用方法
cut?命令可以基于字節(-b選項)、字符(-c)或者字段(-f)提取部分輸入(從標準輸入或者文件中)并且將結果輸出到標準輸出。在最后一種情況下(基于字段),默認的字段分隔符是一個制表符,但可以由 -d 選項來指定不同的分隔符。
樣例
從 /etc/passwd 中提取用戶賬戶和他們被分配的默認 shell(-d 選項允許我們指定分界符,-f 選項指定那些字段將被提取)。
#cat/etc/passwd|cut-d:-f1,7
將以上命令結合起來,我們將使用 last 命令的輸出中第一和第三個非空文件創建一個文本流。我們將使用 grep 作為第一過濾器來檢查用戶 gacanepa 的會話,然后將分隔符壓縮至一個空格(tr -s ' ')。下一步,我們將使用 cut 來提取第一和第三個字段,最后使用第二個字段(本樣例中,指的是IP地址)來排序之后,再用 uniq 去重。
#last|grep gacanepa |tr-s ‘‘|cut-d’‘-f1,3|sort-k2 |uniq
上面的命令顯示了如何將多個命令和管道結合起來,以便根據我們的要求得到過濾后的數據。你也可以逐步地使用它以幫助你理解輸出是如何從一個命令傳輸到下一個命令的(順便說一句,這是一個非常好的學習經驗!)
總結
盡管這個例子(以及在當前教程中的其他實例)第一眼看上去可能不是非常有用,但是他們是體驗在 Linux 命令行中創建、編輯和操作文件的一個非常好的開始。請隨時留下你的問題和意見——不勝感激!