Чтобы напечатать определенную строку, вы можете использовать sed:
route -n | sed -n 2p
для печати второй строки.
Я дам короткое и неполное объяснение того, что sed. Для полного описания я предлагаю просмотреть sed информационные страницы (run info sed).
sed означает редактор потока, то есть редактор, который может воздействовать на поток (или канал) текстовых данных , хотя он может действовать и на файлы; по существу это означает, что (в отличие от ed) он никогда не сможет вернуться к предыдущей строке.
sed, поскольку awk читает по одной строке за раз и применяет сценарий к этой строке, чтобы возможно, изменить его. В конце скрипта по умолчанию модифицированная строка выводится на stdout. Затем sed переходите к следующей строке.
Сценарий представляет собой последовательность парных адресных команд, если строка соответствует адресу, тогда выполняется команда.
Типичная использование sed заключается в выполнении подстановки шаблона чем-то, например
command | sed 's/ *$//'
здесь строка между одинарными кавычками - это скрипт, состоящий из одной пары адрес-команда. Адрес отсутствует (он появится перед s), в таком случае команда применяется по умолчанию ко всем входным строкам. s - это команда, а остальная часть строки - это команды, специфичные для команды: «замените 0 или больше вхождения (*) символа пробела () в конце строки ($) без ничего ( т.е. удалить их).
Другая полезная команда - p и d. Команда p печатает текущую строку, это полезно в сочетании с опцией -n, которые изменяют поведение по умолчанию для печати текущей строки в конце скрипта. Таким образом, в
sed -n '2p'
сценарий представляет собой строку 2p, состоящую из адреса 2 и команды p, поэтому строка 2 будет напечатана, а другая строка не будет напечатана , из-за опции -n.
Команда d удаляет строку, например
sed '3,6d'
удаляет все строки с третьего по шестое. 3,6 - диапазон адресов. Я заметил, что в этом случае нельзя использовать параметр -n, потому что мы хотим напечатать все остальные строки.
Последняя вещь, адрес может быть шаблоном, как в
sed -n '/^#/p'
эта команда будет печатать все строки, начинающиеся (^) с символом #.