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

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

Больше file.ex

efifc1a hygg4a hdy5d nhdw4s wesf3a fjfhyr jfhg gsfar 

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

 efifc1a nhdw4s jfhg hygg4a wesf3a gsfar hdy5d fjfhyr 

  • Насколько хорошо работает grep / sed / awk на очень больших файлах?
  • Замените новые строки char (^ M) во всех файлах, а затем переименуйте файл на основе строки char
  • заменяя многострочную строку другой многострочной строкой, используя sed
  • Sed для копирования части имени файла в другое содержимое файла с той же подстрокой
  • Отдельные «дублированные строки» по пустой строке
  • Почему это добавляет пробелы? echo "x ax" | sed 's / x \ s * / x /'
  • У вас проблемы с командой sed на Linux
  • Заменить «<? Php print t (« Blabla »); ?> "Быть" Blabla "
  • 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 

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

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