如下例所示,我想只保留第一个之前的字词 '约翰'
然而,我应用的模式似乎取代了John从头到尾。所以我需要两次调用sed。
我怎样才能找到正确的方法?
PATTERN="I am John, you are John also"
OUTPUT=$( echo "$PATTERN" | sed -r "s/(^.*)([ \t]*John[ ,\t]*)(.*$)/\1/" )
echo "$OUTPUT"
OUTPUT=$( echo "$OUTPUT" | sed -r "s/(^.*)([ \t]*John[ ,\t]*)(.*$)/\1/" )
echo "$OUTPUT"
我的期望是只召唤一次。因为" John"好几次都会出现问题。
通过上述步骤,它将生成输出:
首先匹配&在最后约翰之后修剪这个词;那么第一个约翰。
我是约翰,你是
我
我想执行一次并获得
我