【发布时间】:2013-10-07 14:03:27
【问题描述】:
我有一个目录PAYMENT。在里面我有一些文本文件。
xyx.txt
agfh.txt
hjul.txt
我需要浏览所有这些文件,并找出每个文件中有多少条目包含像BPR 这样的文本。
如果是这样,我需要收到警报。例如,如果xyx.txt 只包含一个BPR 条目,我需要得到一个警报。
【问题讨论】:
我有一个目录PAYMENT。在里面我有一些文本文件。
xyx.txt
agfh.txt
hjul.txt
我需要浏览所有这些文件,并找出每个文件中有多少条目包含像BPR 这样的文本。
如果是这样,我需要收到警报。例如,如果xyx.txt 只包含一个BPR 条目,我需要得到一个警报。
【问题讨论】:
你不需要循环,这样应该可以:
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
【讨论】:
/your/path 更改为您的真实路径?如果你在PAYMENT,你可以简单地做grep -l "BPR" *,例如。
grep -c 将计算出现次数。对于i need to get an alert,请更具体。
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
【讨论】:
试试看:
grep -o BPR {path}/* | wc -l
其中 {path} 是所有文件的位置。它只会为您提供字符串“BPR”的出现次数。
另外,仅供参考 - 这也在这里讨论过:count all occurrences of string in lots of files with grep
【讨论】: