項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 search-input 尚未註冊或是沒有一個 view.php 檔案.

【Linux 搜尋內容 #2】grep, awk, xargs – 尋找需要的資料,並快速濾出/篩選 結果欄位 所需要的資訊 (內附圖文說明) filter column

前言

我們在使用終端機指令時,很常會顯示一些欄位相關的資訊。
例如:「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」,