2012-02-09 16 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

0

これはあなたのために働くかもしれない:答えのための質問の版の

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

それとも

sed '/^.\{3\}-/s/./X/4' file 
関連する問題