AWK:csvの途中に熱コピーを挿入する

AWK:csvの途中に熱コピーを挿入する

例CSV:

AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH

これで、列2(BBB)をコピーして列3の前に追加する必要がなくなるため、ファイルは次のようになります。

AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH

答え1

$ cat test.txt
AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH

$ awk -F, '{$2=$2","$2}1' OFS=, test.txt
AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH

答え2

awk '{print $1,$2,$2,$3,$4,$5,$6,$7,$8}' file.csv

例:

 ➤ echo "AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH" | awk '{print $1,$2,$2,$3,$4,$5,$6,$7,$8}'
 AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH

関連情報