Para imprimir uma linha em particular, você pode usar sed :
route -n | sed -n 2p
para imprimir a segunda linha.
sed , o que é
Eu darei uma explicação curta e incompleta do que é sed . Para uma descrição completa, sugiro ver sed info pages (run info sed ).
sed mean s tream ed itor , ou seja, um editor que pode atuar em um fluxo (ou canal) de dados de texto, embora possa atuar também em arquivos; substancialmente isso significa que (diferentemente de ed ) ele nunca pode voltar para uma linha anterior.
sed , pois awk lê uma linha por vez e aplica um script a essa linha para possivelmente modificá-la. No final do script, por padrão, a linha modificada é enviada para stdout. Então sed vai na próxima linha.
Um script é uma sequência de par address-command, se a linha corresponder ao endereço, então o comando é executado.
O uso típico de sed é realizar uma substituição de um padrão por algo, por exemplo,
command | sed 's/ *$//'
aqui, a string entre aspas simples é o script, consistindo em um único par endereço-comando. O endereço está faltando (ele apareceria antes do s ), nesse caso, o comando é aplicado por padrão a todas as linhas de entrada. s é o comando e o restante da string são instruções específicas de comando, dizendo "substituto 0 ou mais ocorrência ( * ) de um caractere de espaço ( ) no final na linha ( $ ) sem nada ( ou seja, removê-los) ".
Outros comandos úteis são p e d . O comando p imprime a linha atual, isso é útil em combinação com a opção -n , que modifica o comportamento padrão para imprimir a linha atual no final do script. Então, em
sed -n '2p'
o script é a string 2p que consiste no endereço 2 e o comando p , então a linha 2 será impressa, toda a outra linha não será impressa, devido à opção -n .
O comando d exclui uma linha, por exemplo
sed '3,6d'
excluiria todas as linhas do terceiro para o sexto. 3,6 é um intervalo de endereços. Observo que neste caso não se deve usar a opção -n , porque queremos imprimir todas as outras linhas.
Por último, um endereço pode ser um padrão, como em
sed -n '/^#/p'
este comando imprime todas as linhas que começam ( ^ ) com um caractere # .