2017-08-28 6 views

答えて

1

awkがsubstr()機能を持っている、それがeaiserあなたの問題を解決することができます:

awk -v m="8" -v n="2" 
'{a=substr($0,1,m); 
    b=substr($0,m+1); 
    gsub(".{"n"}","&:",b)}$0=a":"b' 

をあなたが所望の値にmnを変更することができます(エラー処理は私のワンライナーで行われていませんでした)。私たちがテストを行う場合は、次の

$ awk -v m="8" -v n="2" '{a=substr($0,1,m);b=substr($0,m+1);gsub(".{"n"}","&:",b)}$0=a":"b'<<<"aaaaaaaaaaaaaaa" 
aaaaaaaa:aa:aa:aa:a 
1

をこれは(GNU SED)あなたのために働くかもしれない:

sed 's/../&:/4g' file 

ライン全体でグローバルその後、2つの文字の第4回発生後:を挿入します。

関連する問題