假設我想編寫一行來列印與特定字串匹配的行而不重複重複的行..我想在當前目錄的檔案中搜尋該字串:
grep mystring ***What to put here?** | sort | uniq
如何搜尋所有目前目錄檔案?
答案1
find . ! -name . -prune -type f -exec cat {} + |
grep mystring |
LC_ALL=C sort -u
或者:
find . ! -name . -prune -type f -exec cat {} + | awk '
/mystring/ && !seen[$0]++'
使用 GNU grep
:
LC_ALL=C grep -hr --exclude-dir='?*' mystring | LC_ALL=C sort -u
或與zsh
GNU一起使用grep
:
grep -h mystring ./*(D.) | LC_ALL=C sort -u
也可以遞歸地搜尋子目錄中的檔案:
find . -type f -exec cat {} + |
grep mystring |
LC_ALL=C sort -u
或者:
find . -type f -exec cat {} + | awk '
/mystring/ && !seen[$0]++'
使用 GNU grep
:
grep -hr mystring | LC_ALL=C sort -u
請注意,所有這些解決方案也會查看隱藏文件(以及隱藏目錄中的文件),但不會查看非常規文件,並且不會遵循符號連結(除非您使用某些舊版本的 GNU grep
)-r
。