Hi after I find the filesとenclose their nameを持つdouble quotesとthe following command:grep cannot read filename after find foldersとのspaces
FILES=$(find . -type f -not -path "./.git/*" -exec echo -n '"{}" ' \; | tr '\n' ' ')
I do a用loopにgrep a certain word inside
for f in $FILES; do grep -Eq '(GNU)' $f; done
をしかし、grepのは、それはファイルやディレクトリを見つけることができないことを、各エントリ文句:
を見つける一致する各ファイルgrep: "./test/test.c": No such file or directory
画像参照:echo $FILES
が生成するのに対し、
を:
"./.DS_Store" "./.gitignore" "./add_license.sh" "./ads.add_lcs.log" "./lcs_gplv2" "./lcs_mit" "./LICENSE" "./new test/test.js" "./README.md" "./sxs.add_lcs.log" "./test/test.c" "./test/test.h" "./test/test.js" "./test/test.m" "./test/test.py" "./test/test.pyc"
EDIT は答えhereを見つけました。完璧に動作します!
正規表現と一致しないファイルのリストを取得したい場合はどうしますか? – Sanandrea
'-L'オプションは、一致しないファイルをリストします。 –
最後の質問では、2番目のオプションは、ファイル内の(一致しない)ファイルをリストします。結果を含む配列を作成することは可能ですか?だから、私はファイルの内容を読んだり、後でそれを削除する必要はありません。 – Sanandrea