尝试创建一个逐行读入文件(参数1)的bash脚本。如果该行包含与某个搜索字符串匹配的关键字,则该脚本将仅回显该行。到目前为止我所拥有的是:
#!/bin/bash
searchString1="TASK"
searchString2="WD's"
while read line
do
name=$line
if [[ $searchString1 == *"$name"* ]] ;
then
echo $name;
elif [[ $searchString2 == *"$name"* ]] ;
then
echo $name;
fi
done < $1
脚本运行如下:
chmod +x parser_script.sh
./parser_script.sh filename.txt
此bash脚本未检测到搜索字符串。 知道如何解决这个问题吗?感谢
答案 0 :(得分:2)
测试是倒退的。
if [[ $name == *"$searchString1"* ]]; then
echo $name
elif [[ $name == *"$searchString2"* ]]; then
echo $name
fi
其他写法:
if [[ $name == *"$searchString1"* ]] ||
[[ $name == *"$searchString2"* ]]
then
echo $name;
fi
case $name in
*"$searchString1"*|*"$searchString2"*)
echo $name
;;
esac
正如评论中所述,您可以通过一次grep
或awk
来电来完成此操作。