将 $3 中的所有值更改为零

  • 本文关键字: bash shell awk
  • 更新时间 :
  • 英文 :


我有一个看起来像这样的文件:

2360 111037877 111105745 111161458
505 111128359 111026865 111006164 
375 117170057 0 0
247 117086016 0 0
613 117030996 117010050 117029287

我想将第 3 列中的所有值更改为零,以便文件如下所示:

2360 111037877 0 111161458
505 111128359 0 111006164 
375 117170057 0 0
247 117086016 0 0
613 117030996 0 117029287

我该怎么做?我知道这是一个非常基本的问题,但我不能用尴尬来做。我试图做这样的事情:

awk '{$3 = 0}' old file > new file

awk '$3 == "*" { $3=0}' old file > new file

你的第一次尝试几乎很好,你只是忘了打印行:

awk '{$3 = 0; print}'

同一事物的较短版本:

awk '{$3 = 0}1'

你只需要print $0

% awk '{$3=0;print $0}' inp.txt 
2360 111037877 0 111161458
505 111128359 0 111006164
375 117170057 0 0
247 117086016 0 0
613 117030996 0 117029287

相关内容

  • 没有找到相关文章

最新更新