grep
não é necessário, você pode fazer isso com awk
sozinho:
awk 'BEGIN{FS="|"} $1 == "AUGUSTYN" { print NR " " $1 " " $2 " " $3}'
Eu gostaria de obter essa linha de string
AUGUSTYN|Stanisław|3589238
sem |
e :
Eu tentei algo assim:
cat baza|grep "AUGUSTYN" -n|awk -F '|' '{print $1,$2,$3,$4}''
( baza
é meu arquivo com texto e AUGUSTYN
é o nome da pessoa)
O resultado deste comando é:
1:AUGUSTYN Stanisław 3589238
Como você vê lá ainda esta tubulação :( E eu gostaria de obter isso:
1 AUGUSTYN Stanisław 3589238
Eu pego o texto deste arquivo base:
AUGUSTYN|Stanisław|3589238
BARAN|Stanisław|3511477
BUCZEK|Marek|3511526
CABAJ|Wanda|3511483
CEPAK|Józef|3511067
Obter strings sem |
e :
seria ótimo, mas terei que obter o número de linhas em que esse texto está armazenado. Então eu tive que usar o grep. Se você puder encontrar qualquer outra solução mais óbvia para isso também seria mega-excelente.
Como posso arquivar isso? Eu comecei a aprender uma hora atrás este awk. Por favor ajude.
Que tal adicionar | sed "s/:/ /"
no final do seu comando? então é assim
cat baza|grep "AUGUSTYN" -n|awk -F '|' '{print $1,$2,$3,$4}' | sed "s/:/ /"
A menos que eu esteja entendendo mal e você queira fazer isso em um comando.