如何在 awk 命令中使用 concatenate 命令

如何在 awk 命令中使用 concatenate 命令

我正在尝试使用该命令使用不同的子命令打印文件中的多列 awk

下面是我的命令,它在使用连接命令时抛出错误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

抛出错误“c 附近的语法错误”

Sample.txt 将包含类似的数据

0011D959A6BC|308-452591505|70605|1|1|TCD2000||LK012|0|||1|0||2581|850|路易斯安那州查尔斯湖|308|||西南|null|路易斯安那州查尔斯湖|1|A9200019036CF2B|1|1|0

预期输出:0011D959A6BC,452591505,706052581

我使用下面的语法作为示例来连接我的脚本

echo '12345|123|6789'| awk -F\| '{c=$1$2; print c}' 

答案1

在您找到的示例中,c变量没有用,您可以直接连接字符串(此处为字段)并打印结果。

这是实现您想要做的事情的一种方法:

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

相关内容