替換為 sed 表達式

替換為 sed 表達式

我正在嘗試獲取一個值,例如

"909,999"

這樣(該範例將其替換為空):

sed 's/["][0-9]+[,][0-9]+["]//g'

但這不起作用。

答案1

如果你想替換模式,你可以按照@Kusalananda的建議使用sed -E或轉義字元:+

$ printf '"123.456"\n"909,999"\n"100"\n' | sed -E 's/"[0-9]+,[0-9]+"//g'
"123.456"

"100"

或者

$ printf '"123.456"\n"909,999"\n"100"\n' | sed 's/"[0-9]\+,[0-9]\+"//g'
"123.456"

"100"

請注意,g本範例中不需要 ,因為每行只有一個替換。


如果要刪除匹配行,可以使用d刪除模式空間:

$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"

相關內容