De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Eduardo Sousa
Data de Publicação: 28 de agosto de 2015
Sou usuário constante do AIX, sempre me questionei, porque não existe a facilidade do grep -p no Linux.
Da escassa informação encontrada no Oráculo, verifiquei que era possível utilizar Perl e o todo poderoso AWK para esta tarefa.
Então, mãos a obra:
Para filtrar um arquivo com o awk uso a seguinte syntax:
awk '/filtro/' arquivo.txt more arquivo.txt | awk '/filtro/'
Para filtrar um arquivo com o awk definindo linha,campo e delimitador, uso a seguinte syntax:
awk '/filtro/' RS= 'ORS=\n\n' FS= 'OFS=\n' more arquivo.txt | awk '/filtro/' RS= 'ORS=\n\n' FS= 'OFS=\n'
Explicativo:
No comando acima insiro o valor do Filtro, Separo o registro com 2 linhas vazias no final e Separo o campo de cada registro com uma linha vazia.
FS = Separador de Campo
OFS = Saída do Separador de Campo
RS = Separador de Registro
ORS = Saída do Separador de Registro
Utilizando a mesma linha acima, aproveitei e criei o grep -vp
awk '!/filtro/' RS= 'ORS=\n\n' FS= 'OFS=\n' arquivo.txt more arquivo.txt | awk '!/filtro/' RS= 'ORS=\n\n' FS= 'OFS=\n'
Para facilitar o dia-adia criei o script abaixo:
Obs: Para criar o grep-vp adicionar ! na penúltima linha ( !/'"$STRING"'/{print} )
#!/bin/sh # # Grep -p for Cygwin or Linux # # Author: Eduardo Sousa Date: 25/08/2015 # # Copy "alias grep-p='/bin/grep-p'" in ~/home/user/.bashrc # # Syntax: grep-p or grep_p # STRING="$1" INFILE="$2" awk ' BEGIN { RS="" ORS="\n\n" FS="\n" OFS="\n" } /'"$STRING"'/{print} ' ${INFILE}
Eduardo Sousa, UNIX/Linux user, trabalha como Analista de Telecomunicações e TI desde 1999.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários