linux + преобразование столбцов формата файла в один столбец

У меня есть следующий файл (Linux.txt)

linux-test01 linuxER
LinuxCV      LinuxWE LinuxPL
LinuxDF      LinuxXC LinuxSD     LinuxAQ

, как печатать с использованием однострочника awk или perl для создания следующий вывод (вывод будет в новом файле - LinuxNewOrder.txt)

linux-test01
LinuxCV 
LinuxDF
linuxER
LinuxWE
LinuxXC
LinuxPL
LinuxSD
LinuxAQ

, поэтому второй столбец будет после первого, а третий столбец будет после второго, и так далее.

-2
15.05.2016, 15:38
1 ответ

Просто используя awk, печать 1-го столбца ввода, затем 2-го, ...

awk '{ for (i = 1; i <= NF; i++) a[i] = a[i] "\n" $i }
  END  { for (i in a) print substr(a[i], 2) }' Linux.txt

Используя массив a , для каждого столбца i объединяются поля $ i , разделенные новой строкой, в a [i] . В конце ввода a [i] содержит полный столбец i. Наконец, столбцы печатаются по порядку, исключая "\ n", который был вставлен до $ 1`.

1
28.01.2020, 05:15

Теги

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