Bash Regex是否仅打印匹配的字符串?
我试图逐行读取文件并尝试匹配几个字符串,但我无法使用$回显匹配的行?我不确定使用哪一个$函数。有人能帮忙吗?我不想使用grep,提前谢谢Bash Regex是否仅打印匹配的字符串?,regex,bash,Regex,Bash,我试图逐行读取文件并尝试匹配几个字符串,但我无法使用$回显匹配的行?我不确定使用哪一个$函数。有人能帮忙吗?我不想使用grep,提前谢谢 #!/usr/bin/bash while read EachLine do if [[ "$EachLine =~ ^Pass: [0-9]\{1,\}" ]] then echo "$?" fi done < zoix.progress-N0 exit 如果您只想在文件中输出与您的模式匹配的
#!/usr/bin/bash
while read EachLine
do
if [[ "$EachLine =~ ^Pass: [0-9]\{1,\}" ]]
then
echo "$?"
fi
done < zoix.progress-N0
exit
如果您只想在文件中输出与您的模式匹配的行,您是否尝试过以下方法:
grep -E "^Pass: [0-9]+" zoix.progress-N0
您错误地引用了代码。它应该是:if[$EachLine=~^Pass:[0-9]\{1,\}]]。还有,$?返回退出代码,而不是匹配的内容这看起来像是grep的工作。@Bob Banner:您能给我们展示一下示例输入文件的内容和您想要匹配的字符串,以便更清楚一些。Part:0 Pass:1 SimTime:2556565\n Probe Time:5476767\n Pass:2\{1,\}是一种糟糕且有点愚蠢的表达+谢谢的方式,但我不想用grep命令来做这件事,即使我们说服你这显然是一个更好的方法,原因有很多?