特定の行と列の文字を置き換える

特定の行と列の文字を置き換える

次のサンプル.txtを考えてみましょう。

ATO   N   X B               
AT    H1  X BT              
ATOM H25  X BAA              
ATOM  H3  X BUTZ              
ATOM  CA  X BAT 

2-4行のXをawkなどの「A」に置き換えたいので、出力は次のようになります。

ATO   N   X B               
AT    H1  A BT              
ATOM H25  A BAA              
ATOM  H3  A BUTZ              
ATOM  CA  X BAT 

ファイル内のその場所を強調表示します。

どうすればいいですか?ありがとう

ベストアンサー1

そしてawk

awk 'BEGIN{ OFS=FS="" } FNR>=2 && FNR<=4 && $11=="X"{ $11="A" }1' sample.txt

空の文字列を入力フィールドと出力フィールドの区切り文字として使用し、11番目のフィールドが含まれている場合は入力ファイルの定義レコード番号に置き換えますX。その後、記録を印刷します。

おすすめ記事