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

时间:2016-01-14 13:35:53

标签: bash shell awk putty

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

在此命令中,输出是一个普通文件,带有&#34 ;;"字段分隔符。

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

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

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

问题是第三个条件会导致输出中的字段分隔符更改为正常空格(&#34;&#34;)。

我做错了什么?

1 个答案:

答案 0 :(得分:6)

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

  1. 您使用$14=3294代替$14==3294。这会将$14设置为3294的值,而不是将其比较。
  2. 当任何字段发生更改时(无意中发生),awk会重新计算$0,并在字段之间插入OFS