0
使用的sed我想刪除「AS」在下面的字符串的一部分,字符串模式替換掉殼牌
CONV.BUY AS BUY, CONV.CUSTOM1 AS CUSTOM1 , TP.BUY AS BUY, TP.CUSTOM1 AS CUSTOM1
應改爲
CONV.BUY, CONV.CUSTOM1, TP.BUY, TP.CUSTOM1
我所做的是
echo $string | sed -e 's/ AS.*\,/\,/g'
哪給出
CONV.BUY, TP.CUSTOM1 AS CUSTOM1
在該sed中過濾掉了兩個字段。有沒有更好的解決方案來實現我的目標,而不使用循環?
完美..如果你不介意,可以請你解釋'AS [^,] +'部分在sed?以及它如何替換沒有逗號的實例 –
@OptimusPrime當然。請注意,這裏'AS [^,] *'可以,不需要'+'(這是一個Exteneded正則表達式模式,匹配前面的一個或多個令牌)。因此,在AS [^,] *'中,'AS'字面上與'AS'匹配,'[^,]'匹配除','以外的任何字符,下面的*匹配零個或多個這樣的字符,匹配一切,直到下一個','。 – heemayl
使感覺!還有一個問題,我們可以在該sed中進行調整以使'AS'不區分大小寫嗎?即如果它是'AS'或'as'則匹配? –