bash - Bash grep 输出以及 if 语句中的 echo
问题描述
html
我有一个简单的脚本来检查我们的目录中是否正在使用图像。我有一个名为imageserver.txt的文件,它看起来像:
imageserver/icons/socialmedia/sqcolor_tumblr.png
imageserver/icons/socialmedia/sqcolor_gaf.png
imageserver/icons/socialmedia/sqcolor_yelp.png
imageserver/icons/socialmedia/sqcolor_linkedin.png
.....
这是我的简单脚本
图像搜索.sh
#!/bin/bash
while IFS= read -r var
do
echo "\n ... Searching for $var \n"
if grep -rq $var /var/www/html; then
echo "Image exists ...\n"
echo $var >> doesExist.txt
else
echo "Image does not exist ...\n"
echo $var >> nonExists.txt
fi
done < ./imageserver.txt
现在,这很好用。我只想在if
语句中添加一个元素。我希望echo >>
不仅打印$var
到 doesExist.txt
- 但它是在什么文件中找到的。我想我可能需要在grep
里面的辅助文件if
?
我想要的输入doesExist.txt
看起来像:
imageserver/icons/socialmedia/sqcolor_tumblr.png | /var/www/html/file1.html
imageserver/icons/socialmedia/sqcolor_tumblr.png | /var/www/html/file2.html
我被卡住了,不太确定我是否需要辅助grep
文件或 -- 是否可以grep
在原始if
语句中从原始文件中获取文件名?
我如何完成我想要的输入doesExist.txt
解决方案
改变:
if grep -rq $var /var/www/html; then
echo "Image exists ...\n"
echo $var >> doesExist.txt
一些变化:
results=$(grep -rH "$var" /var/www/html)
if [ $? -eq 0 ]; then
echo "Image exists ...\n"
echo "$results" >> doesExist.txt
推荐阅读
- spring-boot - AuditEvent AUTHORIZATION_SUCCESS 未在 OAuth2 资源服务器中触发
- c++ - 如何从文本文件中读取数值直到遇到 char 类型?
- makefile - make fclean && make all works, make re 不行
- c - c指针字符串的问题
- css - VS Code 扩展以突出显示重复的 CSS 属性
- python - 导入 gdal 时遇到此错误-->>DLL 加载失败:找不到指定的模块
- android - Android:将 LiveData ArrayList 转换为 Gson 并再次返回
- pyspark - 在 Pyspark 中合并 2 个数据框
- swift - 在 CTsliding Up 面板底部控制器中显示 nil
- c++ - 在 C++ 中处理 UTF-8 字符串和字符