Как поменять местами определенные столбцы в файле .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

Я не знаю, что происходит с серийными номерами.

-2
21.08.2018, 06:13
2 ответа

Это должно работать нормально:

awk 'BEGIN{FS=OFS=","}{$0=$3 FS $1 FS $2}1'
1
28.01.2020, 05:15
perl -F, -ple '$_ = join ",", @F[2,0,1]'
1
28.01.2020, 05:15

Теги

Похожие вопросы