2012-02-09 65 views
0

我對SED新,我試圖取代線的第n個字符,只要是一個符號「 - 」更換第n個字符,只要是給定的符號

例如,更換第4 「 - 」 一個 「X」 僅是位置:

aaabbbccc 

aaa-bbddd 

aaa-cccbb 

獲得:

aaabbbccc 

aaaXbbddd 

aaaXcccbb 

我發現,有可能取代使用這個命令的第n個位置: SED的/^(。{3})。(。*)/ \ 1X \ 2 /'但我不是能夠納入給定的條件(只有如果是給定的符號)

在此先感謝!

回答

3
echo "aaabbbccc 
aaa-bbddd 
aaa-cccbb"|sed -r 's/^(.{3})-(.*)$/\1X\2/' 

輸出:

aaabbbccc 
aaaXbbddd 
aaaXcccbb 
+0

感謝您的回答和問題的版本! – adalvarez 2012-02-09 10:59:50

0

這可能會爲你工作:

sed 's/^\(.\{3\}\)-/\1X/' file 

或者

sed '/^.\{3\}-/s/./X/4' file