Como executar o grep em 'man unix_command'?

1

Muitas vezes, ao passar pela saída do homem

man awk

Eu preciso executar grep, por exemplo no homem awk, eu preciso encontrar a definição de um sinalizador particular, variável etc. Alguém pode me dizer, o que seria correspondente ao comando grep, ou existe uma maneira melhor de fazê-lo. Eu tentei esse comando, mas ele está comendo todas as novas linhas

echo 'man awk'| grep NR
    
por Dude 17.05.2015 / 14:13

2 respostas

4

Você pode usar apenas grep como um pager:

man -P 'grep NR' awk

mas é melhor procurar por padrão com / em less (provavelmente é seu pager padrão), então:

man awk

e depois

/^ *NR

Desta forma, você encontrará apenas cabeçalhos (padrões no início das linhas).

    
por 17.05.2015 / 16:59
3

Com o comando que você tentou, echo está imprimindo cada palavra na página de manual em uma única linha.

Você teria tido mais sorte com:

echo "'man awk'" | grep NR

ou melhor

echo "$(man awk)" | grep NR

ou melhor ainda, dado o fato de echo ser inútil aqui:

man awk | grep NR

Observe que a maioria, se não todas, man implementações detectam sua saída é um canal e remove a formatação específica do terminal nesse caso.

Com algum Unix, man produz alguma informação durante seu trabalho (por exemplo: Solaris man diz " Reformatando página. Por favor, aguarde ... pronto "), isso pode ser ignorado do saída dessa maneira:

man awk 2>/dev/null | grep NR
    
por 17.05.2015 / 14:43

Tags