在 Linux CLI 下可以用 grep 指令, 將檔案包含有指定字串的行印出, 或者配合 -c 參數直接印出匹配的行數, 例如:
$ grep -c string filename.txt
如果在 Shell Script 要檢查檔案是否有指定字串, 當然可以檢查以上指令輸出的數值, 但另一個更方便的方法, 是用 grep 的 -q 參數, 具體寫法是這樣:
1 2 3 4 5 |
#!/usr/sh if grep -q search_string filename.txt; then echo "Found search_string." fi |
grep 指令當加上 -q 參數後, 會根據搜尋結果回傳 0 或者 1 的 exit code, 當找到字串回傳 0; 找不到回傳 1.
如果在 CLI 使用 -q 參數, 可以用 $? 變數查詢回傳結果:
$ echo ‘hello word’ | grep hi ; echo $?
1
$ echo ‘hello word’ | grep he ; echo $?
hello word
0
1
$ echo ‘hello word’ | grep he ; echo $?
hello word
0