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

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

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-й столбец вывода ps
  • Используйте sed, чтобы удалить все, кроме определенного шаблона
  • Изменить регистр n-й буквы в строке
  • Как исправить непревзойденное количество блоков в 2 столбцах
  • sed предотвращает удаление остальной линии
  • Почему эта команда не работает в AIX?
  • Заменить текст быстро в очень большом файле
  • Diff, показать измененную строку только из правого файла
  • строки в столбцы с awk
  • Условный awk через 4 столбца
  • Interesting Posts

    Почему кто-то хочет запустить UserMode Linux (UML)

    Когда sh является символической ссылкой на bash или тире, bash ограничивает себя соблюдением POSIX, поэтому он должен быть на 100% совместим с sh?

    Какой способ безопаснее читать данные из / sys

    Создание точки монтирования

    Каково состояние драйверов Poulsbo / GMA 500 с открытым исходным кодом?

    Определение здравого смысла

    Копирование больших файлов – создает ли пустым файл в пункте назначения?

    Я не могу понять, как расширить мой домашний раздел Arch на свободное место

    Определить адрес другой машины в локальной сети?

    Возможно ли входить в систему как пользователь root без запроса интерактивного пароля?

    Установка пользовательских программ на сервере без доступа root

    В каком пакете находится этот диалог с возможностью поиска?

    yum игнорирует директиву exclude в yum.conf

    арифметическая синтаксическая ошибка в сравнении строк

    Как получить размер специального файла блока?

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