como usar o comando concatenate dentro do comando awk

0

Estou tentando imprimir várias colunas do arquivo com diferentes subcomandos com o comando awk .

Abaixo está o meu comando que gera erro ao usar o comando concatenate com awk

awk -F\| '{if(length($1) == 12 && $21 == "SOUTHWEST") print $1 "," substr($2,5,9) "," c == $3$15; print  c }' sample.txt | head > test.csv

erro lançado como "erro de sintaxe próximo a c"

exemplo.txt contém dados como

0011D959A6BC|308-452591505|70605|1|1|TCD2000||LK012|0|||1|0||2581|850|La‌​ke Charles, LA|308|||SOUTHWEST|null|Lake Charles, LA|1|A9200019036CF2B|1|1|0 

Saída esperada: 0011D959A6BC,452591505,706052581

Eu usei abaixo da sintaxe como exemplo para concatenar no meu script

echo '12345|123|6789'| awk -F\| '{c=$1$2; print c}' 
    
por SaravanaKumar TR 28.02.2016 / 17:40

1 resposta

0

No exemplo que você encontrou, a variável c é inútil, você pode concatenar diretamente cordas (aqui campos) e imprimir o resultado.

Aqui está uma maneira de alcançar o que você deseja:

awk -F\| '{
  if(length($1) == 12 && $21 == "SOUTHWEST")
    printf("%s , %s, %s\n",$1 ,substr($2,5,9),$3$15)
  }' sample.txt | head > text.csv
    
por 29.02.2016 / 08:05