O que faz o 'grep -1'?

0

Estou tentando entender o seguinte comando shell para obter uma lista de pacotes que podem ser atualizados:

dpkg --get-selections | xargs apt-cache policy {} | grep -1 Installed | sed -r 's/(:|Installed: |Candidate: )//' | uniq -u | tac | sed '/--/I,+1 d' | tac | sed '$d' | sed -n 1~2p

O que significa grep -1 ? Não consigo encontrar menção a -1 na página man do grep, ou mesmo em qualquer lugar da Internet.

    
por Sod Almighty 03.04.2016 / 05:32

3 respostas

4

a opção -1 é a opção tradicional de estilo Unix para indicar que você deseja que grep inclua 1 linha de texto extra por correspondência para contexto .

Se você fizer um man grep e procurar pelo cabeçalho Controle de linha de contexto , verá que as opções a seguir descreverão as diferentes maneiras pelas quais você pode solicitar linhas extras de contexto. Especificamente quanto à sua pergunta, você verá:

    -C NUM, -NUM, --context=NUM
        Print NUM lines of output context.  Places a line  containing  a
        group separator (--) between contiguous groups of matches.  With
        the -o or --only-matching option,  this  has  no  effect  and  a
        warning is given.

é aqui que o -1 é documentado (como -NUM , em que NUM é 1), portanto, os seguintes comandos se comportariam da mesma maneira: grep -1 ou grep -C 1 ou grep --context=1

    
por 03.04.2016 / 07:24
0

Eu consegui descobrir os resultados. Ele especifica quantas linhas precedentes e sucessivas (de "contexto") serão exibidas para cada correspondência. Portanto, neste caso em particular, o grep mostrará a linha anterior e a próxima linha para cada correspondência, além da própria linha correspondente.

    
por 03.04.2016 / 05:47
0

Isso não é nada chamado grep -1 , se você vai para o terminal e digita grep --help você não encontra grep -1

    
por 03.04.2016 / 05:57