行の3番目の文字の変更

行の3番目の文字の変更

入力する:

dummy - 22847847
sha - 84734747
DHS - 374874

予想出力:

du1my - 22847847
sh1 - 84734747
DH1 - 374874

答え1

$ cat test.txt
dummy - 22847847
sha - 84734747
DHS - 374874

$ awk '{$3=1}1' FS="" OFS="" test.txt
du1my - 22847847
sh1 - 84734747
DH1 - 374874

答え2

そしてsed

sed 's/^\(..\)./\11/' infile > expected_result

グループ一致と呼ばれ、(..)最初の2文字をキャプチャし、\1その文字の逆参照です。.正規表現の点は単一の文字と一致します。

3桁目ではなくN桁の場合は、次の手順で3桁目に変更できます1

sed 's/^\(.\{2\}\)./\11/' infile

または以下に指摘したように@スチールドライバ:

sed 's/./1/3' infile

関連情報