如何遍历目录中的所有文件,并使用shell脚本查找这些文件中是否存在值

Ric*_*cky 1 unix bash shell

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

xyx.txt
agfh.txt
hjul.txt
Run Code Online (Sandbox Code Playgroud)

我需要浏览所有这些文件,并查找每个文件中包含文本的条目数BPR.

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

fed*_*qui 6

你不需要循环,这样的东西应该成功:

grep -l "BPR" /your/path/PAYMENT/*
Run Code Online (Sandbox Code Playgroud)
  • 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
Run Code Online (Sandbox Code Playgroud)