Колонки заказов в файле CSV

Я пытаюсь упорядочить все столбцы по имени столбца в файле csv. У меня есть что-то вроде этого:

name ,adress ,mobile-number Ane ,USA ,12121212 Joane ,England ,234234 

и мне нужен результат

 adress ,name ,mobile-number USA ,Ane ,12121212 England,Joane ,234234 

Проблема в том, что у меня больше трех столбцов, и я не знаю, какой порядок они приходят, но мне нужно переупорядочить их в порядке возрастания.

One Solution collect form web for “Колонки заказов в файле CSV”

Мы можем преобразовать столбцы в строки с помощью утилиты rs исходящей из BSD Unix, а затем просто sort строки (таким образом, эффективно сортируя столбцы исходных данных), а затем снова переносить.

Во-первых, обратите внимание, что в алфавитном порядке это: адрес, номер мобильного телефона, имя. M перед N!

Шаг за шагом:

 $ cat data name ,adress ,mobile-number Ane ,USA ,12121212 Joane ,England ,234234 $ rs -s, -C, -T < data name ,Ane ,Joane , adress ,USA ,England , mobile-number,12121212,234234, $ rs -s, -C, -T < data | sort adress ,USA ,England , mobile-number,12121212,234234, name ,Ane ,Joane , $ rs -s, -C, -T < data | sort | rs -s, -C, -T adress ,mobile-number,name , USA ,12121212,Ane , England ,234234,Joane , $ rs -s, -C, -T < data | sort | rs -s, -S' ' -T adress mobile-number name USA 12121212 Ane England 234234 Joane 

В заключение:

 $ rs -s, -C, -T < data | sort | rs -s, -S' ' -T | sed -e 's/ \([^ ]\)/,\1/g' adress ,mobile-number ,name USA ,12121212 ,Ane England ,234234 ,Joane 

Я сделал это на Ubuntu GNU / Linux и сначала должен был выполнить sudo apt-get install rs .

  • Как удалить символы текста в одной строке перед конкретным символом?
  • Как исправить непревзойденное количество блоков в 2 столбцах
  • grep последнее слово данной строки .csv-файл
  • Разделить файл журнала по временному диапазону
  • как это работает в awk даже без печати?
  • Bash: Как создать псевдоним в .bashrc для awk с параметрами
  • Найти шаблон и удалить его из всех файлов
  • Вложение Awk и сравнение переменных
  • gawk присоединяется к двум TSV по столбцам (a'la sql join)
  • Как принять переменную
  • Счетчики, в которых два поля равны
  • Linux и Unix - лучшая ОС в мире.