.csvファイルの特定の列を置き換える方法

.csvファイルの特定の列を置き換える方法

答えを探していましたが、いくつかの混乱した解決策が見つかりました。次の.csvファイルがあります。

device_id,ip_address,serial_number
 Arq_Laboratorios_EdifB, 148.228.134.000,FOC1518Z1G8
 Arquitectura_Dir, 148.228.134.000,FOC1216U13V
 Arq.245, 148.228.134.000,FOC1352V3FE
 Barragan_3750, 148.228.134.000,FDO1129Z9ZJ

列3と1を置き換えると、ファイルは次のようになります。

serial_number,device_id,ip_address
 FOC1518Z1G8,Arq_Laboratorios_EdifB, 148.228.134.000
 FOC1216U13V,Arquitectura_Dir, 148.228.134.000
 FOC1352V3FE,Arq.245, 148.228.134.000
 FDO1129Z9ZJ,Barragan_3750, 148.228.134.000

私はsedまたはawkを使用する簡単な解決策が必要であると確信しています。

更新: この awk 'BEGIN{FS=OFS=","}{a=$1; $1=$3' $3=a}1' dispositivos.csv を使用すると、次のような結果が得られます。

serial_number,ip_address,device_id
, 148.228.134.000, Arq_Laboratorios_EdifB
, 148.228.134.000, Arquitectura_Dir
, 148.228.134.000, Arq.245
, 148.228.134.000, Barragan_3750

シリアル番号がどうなったかわかりません。

ベストアンサー1

これはうまくいきます:

awk 'BEGIN{FS=OFS=","}{$0=$3 FS $1 FS $2}1'

おすすめ記事