^ 之后的管道在 bash 正则表达式中的作用是什么?
What does pipeline after ^ does in a bash regex?
我有一个非常简单的 bash 命令序列:
echo "output 3:"
echo "abc shalom" >|F1
echo " abc shalom 4" >> F1
echo "abc shalom12" >> F1
echo "abc shalom123 shalom6" >> F1
echo "abcshalom22 456 shalom" >> F1
egrep "(^|[ ]*)[^ ]+[ ]+shalom($|..[ ])" F1
输出是:
abc shalom
abcshalom22 456 shalom
我不明白这个简单的正则表达式是如何工作的,我知道管道是 "or",但我不明白我如何获得这两行...
有人可以逐步向我解释这个简短的正则表达式中发生了什么吗?
让我们看看:
egrep "(^|[ ]*)[^ ]+[ ]+shalom($|..[ ])" F1
|
表示匹配一个或另一个。因此,aa|bb
表示:匹配 aa
或 bb
.
说 ^|[ ]*
您正在使用正则表达式来匹配行的开头(由 ^
表示)或零个或多个空格的序列(由 [ ]*
表示) .
我有一个非常简单的 bash 命令序列:
echo "output 3:"
echo "abc shalom" >|F1
echo " abc shalom 4" >> F1
echo "abc shalom12" >> F1
echo "abc shalom123 shalom6" >> F1
echo "abcshalom22 456 shalom" >> F1
egrep "(^|[ ]*)[^ ]+[ ]+shalom($|..[ ])" F1
输出是:
abc shalom
abcshalom22 456 shalom
我不明白这个简单的正则表达式是如何工作的,我知道管道是 "or",但我不明白我如何获得这两行...
有人可以逐步向我解释这个简短的正则表达式中发生了什么吗?
让我们看看:
egrep "(^|[ ]*)[^ ]+[ ]+shalom($|..[ ])" F1
|
表示匹配一个或另一个。因此,aa|bb
表示:匹配 aa
或 bb
.
说 ^|[ ]*
您正在使用正则表达式来匹配行的开头(由 ^
表示)或零个或多个空格的序列(由 [ ]*
表示) .