![](/img/trans.png)
[英]Find and Extract value after specific String from a file using bash shell script?
[英]How to find whether any file of a directory contains a specific string using bash script?
我需要检查字符串M1039C28
是否在目录/var/opt
的任何文件中。
如果找到字符串,它应该回显true
;如果找不到字符串,则应该回显String not found
found 。
样本:
cd /var/opt/;
if [ find ./ -type f -exec grep -Hni "M1039C28" {} ';']
then
echo "String found"
else
INFO "String not found"
fi
考虑将grep
与选项-q
(抑制任何输出)和-r
(在目录中递归搜索)一起使用:
grep -qr "search-query" /path/to/dir && echo "FOUND" || echo "NOT FOUND"
如果在任何文件中找不到该字符串, grep
将以代码1
退出。 有关详细信息,请参阅手册页
为什么不基于此命令编写脚本:
grep -l "M1039C28" * | wc -l
如果结果为 0,则未找到该条目。
如果结果为 1 或更多,则找到该条目。
如果您有一个大目录并且想要递归搜索,请尝试使用silver 搜索器(如果尚未安装),您可以在 Debian 上使用sudo apt install silversearcher-ag
或在 MacOS 上使用brew install the_silver_searcher
。 像这样使用它。
ag "M1039C28" path/to/search && echo "FOUND" || echo "NOT FOUND"
注意路径参数是可选的,默认情况下它递归搜索当前路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.