長さ10の一致する文字列のn番目の位置に文字を挿入するsed / awkコマンドを見つける必要があります。たとえば、パターンで始まり、541
長さ10の文字列を検索してから、置換なしで9
5番目の位置に文字列を挿入すると、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