1

ディレクトリがありPAYMENTます。その中にいくつかのテキストファイルがあります。

xyx.txt
agfh.txt
hjul.txt

これらすべてのファイルを調べて、各ファイルにBPR.

それが 1 つである場合は、アラートを受け取る必要があります。たとえば、エントリがxyx.txt1 つしかない場合は、アラートを受け取る必要があります。BPR

4

3 に答える 3

6

ループする必要はありません。次のようにする必要があります。

grep -l "BPR" /your/path/PAYMENT/*
  • grepファイル内のパターンに一致する行を見つけるツールです。
  • -lその文字列を持つファイルを示します。
  • "BPR"探している文字列です。
  • /your/path/PAYMENT/*grepそのディレクトリ内のすべてのファイル全体に適用されることを意味します。

特定の種類のファイル内/ディレクトリ内を検索したい場合は、コマンドが少し異なるため、そう言ってください。


アップデート

新しいリクエストに基づいて:

これらのすべてのファイルを調べて、BPR のような各ファイルのエントリ数を見つける必要があります。

その場合は、アラートを受け取る必要があります。たとえば、xyx.txt に BPR エントリが 1 つしか含まれていない場合、アラートを受け取る必要があります。

grep -cあなたの友達です(多かれ少なかれ)。だからあなたができることは次のとおりです。

if [ "$(grep -c a_certain_file)" -eq 1 ]; then
    echo "mai dei mai dei"
fi
于 2013-10-07T14:04:12.230 に答える
1

i need to go through all these files an find is there an entry like 'BPR'

次を含むファイル名を検索するコマンドを探している場合は、次をBPR使用します。

echo /path/to/PAYMENT/*BPR*.txt

テキストを含むファイル名を検索するコマンドを探している場合は、次をBPR使用します。

grep -l "BPR" /path/to/PAYMENT/*.txt
于 2013-10-07T14:10:20.880 に答える
0

これを試してください:

grep -o BPR {path}/* | wc -l

ここで、{path} はすべてのファイルの場所です。文字列「BPR」の出現回数だけがわかります。

また、参考までに-これはここでも話されています:grepを使用して多くのファイルで文字列のすべての出現を数えます

于 2013-10-07T14:33:17.197 に答える