Sed
沒有使用 sed 獲得惰性評估
我本來期望’a’為此,為什麼’a:b’?
$ echo "a:b:c" | sed -E 's/(.+?):.+/\1/' a:b
大多數版本
sed
不支持 perl 風格的正則表達式(我知道的唯一一個是“super sed”,ssed,自 2005 年以來一直沒有更新),並且不支持?
non-greedy 修飾符。如果您想使用該精確的正則表達式,最簡單的解決方案是使用
perl
:$ echo "a:b:c" | perl -pe 's/(.+?):.+/$1/' a
否則,修改正則表達式,使擷取匹配除冒號以外的任何字元:
$ echo "a:b:c" | sed -E 's/([^:]+):.+/\1/' a