我正在尝试使用该命令使用不同的子命令打印文件中的多列 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