如何区分Shell脚本输出文件名并在两个文件中grep指定关键词
区分同时间启动脚本的输出文件并搜索关键词
一、给不同脚本生成唯一输出文件名
因为两个脚本启动时间戳相同,靠时间戳没法区分输出文件,最简单的方式是给每个脚本的输出文件加上专属标识,比如脚本名称、自定义后缀:
方案1:手动指定带脚本标识的文件名
直接修改重定向语句,给输出文件加专属后缀,直观好区分:
- Shell脚本1修改为:
Test1=`command 2>output_script1.txt` - Shell脚本2修改为:
Test1=`command 2>output_script2.txt`
方案2:自动用脚本名生成文件名(适合多脚本场景)
如果后续还有更多脚本,不想逐个手动改文件名,可以用basename "$0"获取当前脚本名称,自动生成对应输出文件:
- Shell脚本1修改为:
# 获取脚本名(去掉.sh后缀) SCRIPT_NAME=$(basename "$0" .sh) Test1=`command 2>output_${SCRIPT_NAME}.txt` - Shell脚本2同理,运行后会自动生成
output_Shell脚本1.txt和output_Shell脚本2.txt这类对应文件名,批量脚本也能轻松区分。
二、生成文件后搜索特定关键词
输出文件生成后,用grep命令就能快速搜索关键词:
- 同时搜索两个文件,显示文件名和匹配内容:
grep "你的目标关键词" output_script1.txt output_script2.txt - 分开搜索并单独展示结果(适合需要分别查看的场景):
echo "脚本1的搜索结果:" grep "你的目标关键词" output_script1.txt echo -e "\n脚本2的搜索结果:" grep "你的目标关键词" output_script2.txt
内容的提问来源于stack exchange,提问作者Kingsters
相关产品推荐
相关产品推荐

