2016-03-03 60 views
-2

我需要類似於:sed: Replace part of a line模式之前更換sed的

我有一個IPaddres,作爲圖案,我需要在它之前替換字符串。

樣品:

#stuff SSIPaddress 

需要是

stuff SIPaddress 

想法,或至少是如何把從鏈接的一個爲我:)工作

+0

如果你有表格數據,你可能會發現awk是這類任務的更好工具。 – Raedwald

+1

你只是想用'stuff S'替換'#stuff SS'? – SLePort

+0

感謝您請求Stack Overflow的免費代碼。我們總是樂於編寫代碼來解決其他人的問題,即使他們沒有先嚐試任何東西。我們感謝您的業務。 –

回答

0

根據您的例子:

sed 's/^#stuff SS\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\)\(.*\)/stuff S\1\3/' <<< "#stuff SS1.2.3.4" 

個輸出:

stuff S1.2.3.4 
0

CodeGnome,你是對的,但讓我告訴我的嘗試:一種模式後

sed: Replace part of a line -this取代。

我試圖扭轉字符串工作對我來說這種想法是(模式更換後,右)

echo 「`grep "SS" file | sed -re '/([0-9]{1,3}\.){4}/p' 
| grep -v drama`」 | rev | sed -i …|rev 

問題,它打印匹配行的複製還原的文件& &着一倍管的sed -i而不會在端部的文件(ERR sed的:無輸入文件)

獲勝代碼,很多SED瘋狂後

sed -ri 'drama/! { /SS/ s/SS/S/;s/#// } ' file 

由於

#*.* SSdrama:123 
#*.* SSIP 

「不匹配的戲劇,與SS圖線,對一切(我的樣本中只有一個ocurrence)SED與‘替換爲S SS和#’;請注意,我沒有」根本就不得不與IP匹配。