列に基づいてファイル範囲を拡張する

列に基づいてファイル範囲を拡張する

以下のように開始番号と終了番号を持つファイルがあります。

Start,end,code
43786,67883,avb
200,400,add
12,14,adf

ただし、始まりと終わりの間のすべての数字がそのコードで書かれるように書き直す必要があります。

43786,Avb
43787,avb
43788,avb
43789,avb

最後の67883まで、avbは範囲内にあり続けます。

200,add
201,add
202,add 

ベストアンサー1

次のようなもので十分です。

awk 'BEGIN{FS=OFS=","}{for(i=$1;i<=$2;i++) print i,$3}' input_file > output_file

ファイルに印刷する必要のないヘッダーがある場合:

awk 'BEGIN{FS=OFS=","}NR>1{for(i=$1;i<=$2;i++) print i,$3}' input_file > output_file

おすすめ記事