Shell
如何計算grep中片語的出現次數,忽略大小寫?
nicolas bomber
我需要使用搜尋名稱grep
。名字也可以NiCoLaS BomBer
。我需要執行一個.sh
顯示該名稱出現次數的文件。我發出的命令是這樣的:
grep -i "Nicolas \s*Bomber" annuaire | wc -l
但它不起作用。
有什麼建議麼?
grep
-o
將只輸出匹配項,忽略行;wc
可以數一數:grep -io "nicolas bomber" annuaire | wc -l
或者簡單地說,
grep -ioc "nicolas bomber" annuaire
-z
正如您評論的那樣,您可以使用選項匹配單詞之間出現的任意數量的空格,grep -iz "nicolas[[:space:]]*bomber" annuaire | wc -l
從
man grep
-i, --ignore-case Ignore case distinctions in both the PATTERN and the input files. (-i is specified by POSIX.) -o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. -c, --count Suppress normal output; instead print a count of matching lines for each input file.
或者,如果您想搜尋特定文件副檔名中的字元串,例如說所有
*.txt
文件,您可以使用:grep -R --include='*.txt' -ioc "nicolas bomber" .