尝试创建一个 bash 脚本来逐行读取文件(参数 1)。仅当脚本包含与搜索字符串之一匹配的关键字时,脚本才会回显该行。到目前为止我所拥有的是:
#!/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 脚本未检测搜索字符串。 知道如何解决这个问题吗?谢谢
最佳答案
测试是向后的。
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
调用来完成此操作。
关于bash - 读取行并比较字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28564128/