Необходимо проанализировать таблицу двойного входа с двумя парами

У меня есть эта таблица с двумя входами в результате вывода программы:

Variable1 : Value1 Variable2 : Value2 Variable3 : Value3 Variable4 : Value4 Variable5 : Value5 Variable6 : Value6 Variable7 : Value7 

Мне нужно извлечь и первую, и пятую пару, что я делаю с grep:

 $ {program command} | grep -e Variable1 -e Variable5 

в результате чего этот результат:

 Variable1 : Value1 Variable5 : Value5 

Проблема здесь в том, что мне нужны обе пары в одной строке, но команда grep -e печатает LF / CR после каждого -e; Мне нужны четыре пары в одной строке, чтобы сделать окончательный сортировку на основе размера файла. Я думаю, что могу сделать это в awk или perl из той же командной строки, но, увы, я все еще несколько зеленые с ними.

Есть идеи? Заранее спасибо.

3 Solutions collect form web for “Необходимо проанализировать таблицу двойного входа с двумя парами”

Если вы просто хотите присоединиться к строкам, используйте tr для удаления новой строки:

 $ {program command} | grep -e Variable1 -e Variable5 | tr -d '\n' 

Сделать все это в awk :

 $ {program command} | awk '/Variable[15]/ { printf("%s ", $0) }' 

То же самое в sed :

 $ {program command} | sed -n '/Variable[15]/H; $ { x; s/\n/ /g; p }' 

Если вы просто хотите присоединиться к обеим линиям из grep, самый простой способ – fmt через fmt .

 $ {program command} | grep -e Variable1 -e Variable5 | fmt 

Если строки слишком длинны, используйте параметр -w LINELENGTH для fmt.

Вы можете удалить новую строку путем замены Perl

 perl -ne 's/\n/ /; print if /Variable[15]/' 

Если вам нужна новая строка в конце, добавьте

 perl -ne 's/\n/ /; print if /Variable[15]/ }{ print "\n"' 
  • Замена шаблона после n-го совпадения найдена в каждой строке?
  • Проверка формата имени файла в оболочке linux
  • Переупорядочить несколько линейных блоков с помощью Sed
  • Как удалить повторяющиеся слова с суффиксами?
  • Замена строк в файлах с содержимым файла
  • Как удалить первую точку перед первым номером?
  • Изменение формата валюты на общий номер с помощью sed
  • Редактирование бинарных потоков, содержащих байты '\ x00'
  • grep шаблон перед другим шаблоном и распечатать все
  • замена sed не будет работать (регулярное выражение)
  • Как заменить строку в файле другим файлом?
  • Linux и Unix - лучшая ОС в мире.