我想要更改文件中每一行的格式,並且還要在其中一個匹配的組上運行另一個替換。有沒有辦法嵌套sed替換?
作爲一個例子,我可以有一個簡單的三列CSV文件(沒有轉義),我想以另一種格式。
sed -r 's/^([a-z]+),([a-z]+),([a-z]+)$/\1: \3 (\2)'
# would turn "comma,separated,values"
# into "comma: values (separated)"
不過,我也希望從第二列中刪除所有的元音,即在\2
運行s/[aeiou]//g
。
是否有一個很好的解決方案來解決這個嵌套替換問題?請假設這兩個替換都很複雜,而這僅僅是一個例子。
我的sed不是GNU sed 4.0版本。
你不能將一個sed管入第二個? – NorthGuard
@inTide:我不想刪除_all_元音,只是那些來自第二列的元音。 – Tim
對,所以第一個sed你刪除逗號和第二個sed之間的所有元音,你首先用逗號':'和第二個逗號'()'。 – NorthGuard