我有一个目录PAYMENT
。在里面我有一些文本文件。
xyx.txt
agfh.txt
hjul.txt
我需要浏览所有这些文件,并查找每个文件中包含BPR
等文本的条目数。
如果是一个我需要得到警报。例如,如果xyx.txt
只包含一个BPR
条目,我需要收到提醒。
答案 0 :(得分:6)
你不需要循环,这样的东西应该成功:
grep -l "BPR" /your/path/PAYMENT/*
grep
是一种用于查找与文件中的模式匹配的行的工具。-l
显示哪些文件包含该字符串。"BPR"
是您要查找的字符串。/your/path/PAYMENT/*
表示该目录中的所有文件都会grep
。如果您想要在特定类型的文件/内部目录中查找,请说明,因为命令会有所不同。
根据您的新要求:
我需要浏览所有这些文件,找出每个文件中有多少条目 文件就像BPR。
如果是我需要提醒的话。例如,如果xyx.txt包含 只有一个BPR条目,我需要收到提醒。
grep -c
是你的朋友(more or less)。所以你能做的是:
if [ "$(grep -c a_certain_file)" -eq 1 ]; then
echo "mai dei mai dei"
fi
答案 1 :(得分: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
答案 2 :(得分:0)
尝试一下:
grep -o BPR {path}/* | wc -l
其中{path}是所有文件的位置。它只会给你字符串“BPR”的出现次数。
另外,仅供参考 - 这也在这里讨论过:count all occurrences of string in lots of files with grep