最初にライブラリに文字列を持たないファイルを探す必要があります。結果のファイル名のうち、文字列を含むファイルを検索する必要があります。文字列のないディレクトリ(パテ環境上)のファイルを探します
まず、コマンドラインでgrep -Lを試しましたが、うまくいきません。 私はUNIXには新しく、誰でもこのロジックを構築するのに助けてください。
ありがとうございます!
最初にライブラリに文字列を持たないファイルを探す必要があります。結果のファイル名のうち、文字列を含むファイルを検索する必要があります。文字列のないディレクトリ(パテ環境上)のファイルを探します
まず、コマンドラインでgrep -Lを試しましたが、うまくいきません。 私はUNIXには新しく、誰でもこのロジックを構築するのに助けてください。
ありがとうございます!
検索するには、いくつかのアイデアとcmdsがあります。
(あなたの問題の説明は私には不明であるので、私はあなたが求めている最も可能性の高いソリューションのように思えるものをあなたに与えている)。..
テストファイルを考えると
echo "a
b
c
d" > /tmp/testFile.txt
することができます
を返しますgrep d /tmp/testFile.txt ; echo $?
とそのファイル内の「言葉」(または文字)を検索
0
は、正常に実行されたcmdを示し、1
(またはその他の非ゼロ値)は、エラーが発生したことを示します。で見つかりませんでしたe
ためだけ
1
grep -l e /tmp/testFile.txt ; echo $?
リターン:
は今、指定されたオプションの要件を満たす「リスト」のファイルを言うgrep
に
-l
オプションを追加しますファイル、その名前は印刷されませんでした。
grep -l d /tmp/testFile.txt ; echo $?
/tmp/testFile.txt
0
は、検索対象が見つかったことを示すように対照的に
は、ファイルに存在しない文字列を検索すると検索します。
今、あなたはgrepの上で検索するすべてのファイルのリストを取得する方法が必要、
cd /path/to/starting/dir/to/search # you know what to put here, right?
find . -name '*.txt'
は、現在のディレクトリとすべてのサブディレクトリ内のすべての.txt
ファイルのリストを生成します現在のディレクトリ。
最後に、あなたはあなたのターゲット文字列は、これはあなたのニーズを満たしていないだろう。もちろん、
srchStr="e"
cd /path/to/starting/dir/to/search # you know what to put here, right?
find . -name '*.txt' \
| while read file ; do
if ! grep -q "$srchStr" "$file" ; then
echo "no $srchStr in $file"
fi
done
が存在するかどうかをチェックすることができ、ループに.txt
ファイルのリストを供給することができます。しかし、いくつかのコードで新しいQを投稿してください。他の人があなたを助けることができます。私はこれにもっと時間を費やすことはできません(いつでもすぐに)。 unix find
のチュートリアルを探してください。これは、すべてのファイルを一覧表示するための鍵となるため、grepで検索することができます。
IHTH
***してください***読みhttp://stackoverflow.com/help/how-to-ask http://stackoverflow.com/help/dont-askて、http://のstackoverflow .com/help/mcveよりQを投稿する前に。がんばろう。 – shellter
誰かがこの1つの上でビューを共有することができます、私はここにこだわってきました、ありがとう! – Rhea