awk 在使用三个 && 条件保存文件时更改字段分隔符

awk changes field separator when saving file with three && conditions

我有一个非常具体的 awk 问题:

在此命令中,输出是带有“;”的普通文件字段分隔符。

awk -F\: '{ FS = ";";}{ if(>=11414836 && <=11500000) print [=10=];}' /file.txt>/newfile.txt

现在,我需要添加第三个条件:

awk -F\: '{ FS = ";";}{ if(>=11414836 && <=11500000 && =3294) print [=11=];}' /file.txt>/newfile.txt

问题是第三个条件导致输出中的字段分隔符变为正常的 space (" ")。

我做错了什么?

问题是双重的(都在评论中说明):

  1. 您使用 =3294 而不是 ==3294。这会将 </code> 设置为 <code>3294 的值,而不是对其进行比较。
  2. 当任何字段发生更改(无意中发生)时,awk 重新计算 [=15=],并在字段之间插入 OFS