您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關AWK如何讀取標準輸入,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
在 awk 系列中,我們將會看到幾個例子,你可以篩選其他命令的輸出代替從一個文件讀取輸入作為 awk 的輸入。我們首先從使用 dir 命令開始,它類似于 ls 命令。
在第一個例子下面,我們使用 dir -l 命令的輸出作為 awk 命令的輸入,這樣就可以打印出文件擁有者的用戶名,所屬組組名以及在當前路徑下他/她擁有的文件。
# dir -l | awk '{print $3, $4, $9;}'
列出當前路徑下的用戶文件
再來看另一個例子,我們使用 awk 表達式 ,在這里,我們想要在 awk 命令里使用一個表達式篩選出字符串來打印出屬于 root 用戶的文件。命令如下:
# dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '
列出 root 用戶的文件
上面的命令包含了 (==) 來進行比較操作,這幫助我們在當前路徑下篩選出 root 用戶的文件。這是通過使用 $3==”root” 表達式實現的。
讓我們再看另一個例子,我們使用一個 awk 比較運算符 來匹配一個確定的字符串。
這里,我們使用了 cat 命令 來瀏覽文件名為 tecmint_deals.txt 的文件內容,并且我們想要僅僅查看有字符串 Tech 的部分,所以我們會運行下列命令:
# cat tecmint_deals.txt# cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'# cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'
用 Awk 比較運算符匹配字符串
在上面的例子中,我們已經用了參數為 ~ /匹配字符/ 的比較操作,但是上面的兩個命令給我們展示了一些很重要的問題。
當你運行帶有 tech 字符串的命令時終端沒有輸出,因為在文件中沒有 tech 這種字符串,但是運行帶有 Tech 字符串的命令,你卻會得到包含 Tech 的輸出。
所以你應該在進行這種比較操作的時候時刻注意這種問題,正如我們在上面看到的那樣,awk 對大小寫很敏感。
你總是可以使用另一個命令的輸出作為 awk 命令的輸入來代替從一個文件中讀取輸入,這就像我們在上面看到的那樣簡單。
關于“AWK如何讀取標準輸入”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。