一致する文字列のn番目の位置に文字を追加します。

一致する文字列のn番目の位置に文字を追加します。

長さ10の一致する文字列のn番目の位置に文字を挿入するsed / awkコマンドを見つける必要があります。たとえば、パターンで始まり、541長さ10の文字列を検索してから、置換なしで95番目の位置に文字列を挿入すると、11文字の文字列が生成されます。

文字列はスペースで区切られた単語です。また、パターンは常に単語の先頭にありますが、1行に複数の一致がある可能性があります。

入力ファイル:

5414444444 87654873234  88888888888
6646666666 54122222222 
54155555558888 54176543235 5416666666

結果ファイル:

54149444444 87654873234  88888888888
6646666666 54122222222 
54155555558888 54176543235 54169666666

ベストアンサー1

OPは、aがそうでないwordことを意味することを例に見ることができます。string

sed 's/\b541./&9/g' file

Wordで他の場所から始めることが可能な場合541(最初からではありません)

sed 's/\b\S*541/\n&/g     #mark a beginning of word(s) with pattern
     s/\n\(....\)/\19/g   #remove mark and do adding
    ' file

次のように単語の記号数を制限できます。

sed 's/\b\(541.\)\(\S\{6\}\)\b/\19\2/g' file

またはより一般的に

sed 's/\b541./&\n/g;s/\n\S\{6\}\b/9&/g;s/\n//g' file

おすすめ記事