2012年9月21日 星期五

[Linux][ShellScript] grep應用


問題
一個txt內存有檔案路徑列表,對此txt中每一檔案路徑做關鍵字查詢

.
├── file.txt
├── a.txt
├── b.txt
├── c.txt
└── test.sh


解法
$ cat file.txt |xargs grep "keyword"
出來的結果是出現有搜尋到關鍵字的檔名,及關鍵字
path/a.txt:keyword
path/b.txt:keyword

只顯示又搜尋到關鍵字的檔名
$ cat file.txt |xargs grep "keyword" |awk -F: '{print $1}'

[Linux][ShellScript] awk - 取得token, 以符號切割

Data=123:aa bbb c

1). 擷取某個token
Ex1: 擷取第2個token
$ awk '{print $2}' Data

Ex2: 擷取第2.3個token
$ awk '{print $2,$3}' Data

2). 以符號切割,並取冒號之後的字串
$ awk -F: '{print $2} Data'