在 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