Como trabalhar com vários comandos sed no aix?

1

Eu quero pesquisar um padrão e preciso da próxima linha desse padrão.

No Linux, tentei como abaixo e funcionou.

sed -n '/pattern/{N;p}' ouputfile.txt

Mas no AIX, isso não está funcionando e jogando erro como

0602-404 Function cannot be parsed

Como conseguir isso no AIX?

    
por Sriram P 05.06.2017 / 13:30

2 respostas

5

Está faltando um ponto-e-vírgula após o p antes do '}'

sed -n '/pattern/{N;p;}' ouputfile.txt

Você também pode escrevê-lo como vários comandos -e :

sed -n -e '/pattern/{' -e 'N;p' -e '}' ouputfile.txt

E o mais seguro & A maneira mais clara é mostrar as linhas conforme este método permite que você coloque comentários em linha no código sed:

sed -ne '
    # lines matching pattern
    /pattern/{
        N;      # grab the next line into the pattern space
        p;      # print the pattern space holding the current+next line
    }
' outputfile.txt

(não se esqueça do ; entre os comandos N / p e # )

    
por 05.06.2017 / 14:06
-1

Acho que o SED pode não ser a melhor opção para procurar strings nos sistemas AIX / * nix. É usado principalmente para editar fluxos de arquivos.

Você precisa usar grep para procurar um padrão em um arquivo.

grep -A 1 "pattern" file.txt daria a próxima linha depois do padrão correspondente.

Obrigado Arun

    
por 05.06.2017 / 13:53

Tags