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

use*_*631 2 bash shell awk

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

2360 111037877 111105745 111161458
505 111128359 111026865 111006164 
375 117170057 0 0
247 117086016 0 0
613 117030996 117010050 117029287
Run Code Online (Sandbox Code Playgroud)

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

2360 111037877 0 111161458
505 111128359 0 111006164 
375 117170057 0 0
247 117086016 0 0
613 117030996 0 117029287
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我知道这是一个非常基本的问题,但我不能用awk来做.我试图做这样的事情:

awk '{$3 = 0}' old file > new file
Run Code Online (Sandbox Code Playgroud)

awk '$3 == "*" { $3=0}' old file > new file
Run Code Online (Sandbox Code Playgroud)

Sto*_*ica 5

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

awk '{$3 = 0; print}'
Run Code Online (Sandbox Code Playgroud)

同一件事的较短版本:

awk '{$3 = 0}1'
Run Code Online (Sandbox Code Playgroud)