Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Regex是否仅打印匹配的字符串?_Regex_Bash - Fatal编程技术网

Bash Regex是否仅打印匹配的字符串?

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 如果您只想在文件中输出与您的模式匹配的

我试图逐行读取文件并尝试匹配几个字符串,但我无法使用$回显匹配的行?我不确定使用哪一个$函数。有人能帮忙吗?我不想使用grep,提前谢谢

#!/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命令来做这件事,即使我们说服你这显然是一个更好的方法,原因有很多?