前言
我們在使用終端機指令時,很常會顯示一些欄位相關的資訊。
例如:「ls -l」/「ll」、「ps -a」、「top」、「history」等等
這些的結果都是有「欄位」的概念的 (也就是說,他的資訊是由行列所構成),
我們可以利用 grep, awk, xargs ,三種功能的結合,快速找到自己需要的資訊。
grep
算是 linux terminal 使用者在查詢資料的必備指令之一,
* 使用方式為:
原指令 | grep '搜尋目標'
注意中間的「|」,代表「且」的意思
使用範例:
top | grep 'ubuntu'
- 結果:只顯示包含 “搜尋目標” 的結果
原本 top 會顯示所有系統執行中的程式,
使用「grep」之後,我們只關心「ubuntu」這個使用者正在執行的程式。
awk
這個是針對當輸出欄位有行列的概念時,能夠只輸出單一的直行。
使用方式為:
原指令 | grep '搜尋目標' | awk '{print $0}'
- $0:顯示全部內容
- $1:顯示第1直行
- $2:顯示第2直行…
使用範例:
1.我們可以先觀察使用「history」看歷史紀錄。
history
- 結果:
(只節錄一部份)
2.再來我們使用「grep ‘history’」只顯示出有history的欄位
history | grep 'history'
- 結果:
3.我們使用「awk ‘{print $1}’」只抓出第1直行的「第幾條目」
history | grep 'history' | awk '{print $1}'
- 結果:
就可以快速濾出我們想要的資料囉!
xargs
xargs 指的是我們對於篩選後的結果要進行什麼樣的動作,
例如我們可以使用「grep」的敘述篩選出所有「包含指定內容」的檔案,
然後透過「awk」只擷取檔名的部份,
然後使用例如「xargs rm」,