Eu trabalho em uma empresa que não me deixa instalar nenhum software em meus computadores e eu corro janelas horríveis lá.
Preciso limpar muitos textos que copio da intranet e salve como arquivo txt. Então eu tenho que usar sed
e/ou awk
editores online ao vivo, como este ou este
Esses textos são assim
01
010010-26.2010.501.0026 fafas fasdf asdf asdfsadf asdfasd fasd asasdff
fdfsadf adsf adsf asdf asdfas fadsf asdfa
02
0011-15.2016.501.0012 fafas fasdf asdf asdfsadf asdfasd fasd asasdff
asdfasd fasd asasdff
asdfasd fasd asasdff
0011-125.2013.501.0012
asdfasd fasd asasdff
Veja os números como 0011-15.2016.501.0012
este é o que eu quero. Não me importo com o resto, mas quero criar um novo texto limpo com todos esses números, um por linha. No exemplo anterior, preciso de um texto com
010010-26.2010.501.0026
0011-15.2016.501.0012
0011-125.2013.501.0012
o .501.
está sempre presente, em todos os números, como o 4º grupo.
Eu tentei este comando no editor online sed
's/\([0-9]*\-[0-9]*\.[0-9]*\.501\.[0-9]*\)/\1/'
Não está funcionando.
É bastante simples com o AWK, b/c normalmente o AWK não faz nada, então só precisamos dizer quando fazer as coisas, ou seja, imprimir o ID no início da linha, se estiver lá
Com sed é um pouco diferente, b/c por padrão sed imprimirá tudo. (Pelo menos é assim que essas ferramentas estão funcionando para mim.) Primeiro, precisamos invocar
sed
assed -n
, para alterar seu comportamento padrão para não fazer nada. Então nós podemosPrecisamos do
p
no final para dizer ao sed para imprimir o resultado, se tivermos um padrão correspondente. Sua expressão sed específica é um NOOP porque substitui cada correspondência por si mesma e imprime todo o resto como estava.Funciona, mas você não muda nada, ou melhor, muda para o que era. Mas com uma modificação muito pequena deste código, você pode obter o que deseja:
Observe três coisas:
-n
switch, significa não imprimir nada por padrão.*
no final do grupo selecionado com(...)
p
como último comando significa imprimir esta linhaResultado:
BTW, você pode simplificar um pouco adicionando
-E
e usando expressões regulares estendidas, ou seja, se livrar das barras invertidas na frente dos grupos de captura:Ambas as formas funcionam na página mencionada.