我正在使用 awk 文件生成报告以提取数据并写入另一个文件。文件名:dosreport.awk。此代码打印这样的材料编号 000000000000787301
if (substr($0, 1, 7) == "E2EDP19" && E2EDP19seen == 1)
{
printf " " substr($2, 6);
E2EDP19seen=E2EDP19seen +1;
}
相关数据是
E2EDP19001 02002000000000000797578
我需要去掉前导零,只给我 787301。同样,这是在 awk 文件中,因此管道到 awk 命令将不起作用。
对原始 printf 进行类型转换将为我提供预期值。工作代码
if (substr($0, 1, 7) == "E2EDP19" && E2EDP19seen == 1)
{
if (substr($2, 6)+0 == 0)
{
printf " " substr($2, 6);
}
else{
printf " " substr($2, 6)+0;
}
E2EDP19seen=E2EDP19seen +1;
}