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

mon*_*nce 2 bash shell awk putty

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

在此命令上,输出是带有";"的普通文件 字段分隔符.

awk -F\: '{ FS = ";";}{ if($1>=11414836 && $1<=11500000) print $0;}' /file.txt>/newfile.txt
Run Code Online (Sandbox Code Playgroud)

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

awk -F\: '{ FS = ";";}{ if($1>=11414836 && $1<=11500000 && $14=3294) print $0;}' /file.txt>/newfile.txt
Run Code Online (Sandbox Code Playgroud)

问题是第三个条件导致输出中的字段分隔符更改为正常空格("").

我究竟做错了什么?

Bri*_*ian 6

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

  1. 你用$14=3294而不是$14==3294.这设置$14为值3294,而不是比较它.
  2. 当任何字段发生更改时(无意中发生),awk重新计算$0并插入OFS字段之间.