awk + как добавить список в файл

У меня есть следующий список в файле

Больше file.ex

efifc1a hygg4a hdy5d nhdw4s wesf3a fjfhyr jfhg gsfar 

как добавить второй список после первого списка и третьего списка после второго списка:

 efifc1a nhdw4s jfhg hygg4a wesf3a gsfar hdy5d fjfhyr 

  • Найти строку в одном разделе файла с несколькими разделами
  • Sed, которая игнорирует любой комментарий
  • Как удалить строки под подзаголовком в файле с помощью команд linux
  • Прочитайте строку из файла, манипулируйте, а затем добавьте в другой файл
  • Отображать слова в цвете
  • Извлечение записей фиксированной ширины без разделителя из одной строки
  • sed с множественным выражением для аргумента на месте
  • awk + как печатать каждую секцию строки (IP) после первого имени хоста
  • 2 Solutions collect form web for “awk + как добавить список в файл”

    Как насчет

     awk ' BEGIN {FS="\n"; RS="\n\n+"} {for (i=1;i<=NF;i++) a[i] = a[i] == ""? $i : a[i]"\t"$i; next} END {for (i in a) print a[i]} ' file.ex 

    Тестирование:

     awk ' > BEGIN {FS="\n"; RS="\n\n+"} > {for (i=1;i<=NF;i++) a[i] = a[i] == ""? $i : a[i]"\t"$i; next} > END {for (i in a) print a[i]} > ' file.ex efifc1a nhdw4s jfhg hygg4a wesf3a gsfar hdy5d fjfhyr 

    Если вы не застряли в использовании awk, вы можете сделать это, используя команду columns autogen и команду transpose описанную здесь. Транспонирование строк и столбцов, например

     columns -c3 < file.ex | tr -s ' ' '\t' | transpose -t 

    Если вы принимаете временные файлы, вы можете сделать это как двухэтапный процесс с awk и paste :

     n=$(awk '{ print $0 > NR; close(NR) } END { print NR }' RS= file.ex) paste $(seq $n) 

    Или как однострочный:

     paste $(seq $(awk '{ print $0 > NR; close(NR) } END { print NR }' RS= file.ex)) 

    Выход в обоих случаях:

     efifc1a nhdw4s jfhg hygg4a wesf3a gsfar hdy5d fjfhyr 

    Обратите внимание: это создает пронумерованные файлы в текущем каталоге, поэтому будьте осторожны, чтобы не перезаписывать другие файлы.

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.