他のファイルの内容に含まれていない出力のすべての行をリストします。

他のファイルの内容に含まれていない出力のすべての行をリストします。

ファイルディレクトリがあります。content.txt他のファイル()の内容にどのファイルがリストされていないかを確認したいと思います。

content.txtファイル名だけでなく、前後のテキストも含まれているので、部分文字列検索を探しています。

例:

$ ls
./file1 ./file2 ./file3

$ cat /some/path/content.txt
name: file2 (y)
age: file6 (z)
height: file9 (x)

私は仮想スクリプトが次を返したいと思います:

file1
file3

現在動作していない解決策は、find .すべてのファイルを一覧表示し、sed replacementを使用してフォルダの名前を変更し、grepを試してファイルに存在することを確認することです。 find . | sed 's|MyFolder/||' | xargs -I {} -0 grep {} /some/path/content.txt

これは非効率的なようで、これ以上進む方法がわかりません。 grepを使用して終了コードのxargsをチェックすることを検討しましたが、-qs各ファイルをチェックする代わりに出力のみが生成されます。

find . | sed 's|MyFolder/||' | (xargs -I {} -0 grep {} /some/path/content.txt) && echo "true" || echo "false"

ベストアンサー1

おすすめ記事