我正在嘗試獲取一個值,例如
"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"