1

我有一个目录PAYMENT。在里面我有一些文本文件。

xyx.txt
agfh.txt
hjul.txt

我需要浏览所有这些文件并找出每个文件中有多少条目包含诸如BPR.

如果它是一个我需要得到一个警报。例如,如果xyx.txt只包含一个BPR条目,我需要得到一个警报。

4

3 回答 3

6

你不需要循环,这样的事情应该使它:

grep -l "BPR" /your/path/PAYMENT/*
  • grep是一种在文件中查找与模式匹配的行的工具。
  • -l显示哪些文件具有该字符串。
  • "BPR"是您要查找的字符串。
  • /your/path/PAYMENT/*意味着它将grep贯穿该目录中的所有文件。

如果您想在特定类型的文件/目录中查找,请这样说,因为命令会有所不同。


更新

根据您的新要求:

我需要浏览所有这些文件,找出每个文件中有多少条目,如 BPR。

如果它是一个我需要得到一个警报。例如,如果 xyx.txt 只包含一个 BPR 条目,我需要得到一个警报。

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 回答