gpt4 book ai didi

linux - 如何在特定条件下更改特定字段的值

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:26 25 4
gpt4 key购买 nike

我正在寻找是否有人可以帮助我修改特定字段的特定值。一个具体的例子是这样的:

thissample000     0field2     00field3     11
field1sample0 0field2 00field3 11
thissample000 0field2 00field3 0
field1sample0 0field2 00field3 11
thissample000 0field2 00field3 0
field1sample0 0field2 00field3 0
field1sample0 0field2 00field3 11
field1sample0 0field2 00field3 11
field1sample0 0field2 00field3 0
thissample000 0field2 00field3 0
thissample000 0field2 00field3 11
thissample000 0field2 00field3 11
field1sample0 0field2 00field3 11
field1sample0 0field2 00field3 0
thissample000 0field2 00field3 11

根据上面的内容,我只需要修改值为 0 的字段 4(第 4 列),但前提是字段 1(第 1 列)是 thissample000。我无法使用 sed 命令,因为所有字段都有 0 个字符,而且我无法手动编辑它,因为有数千行。寻求您的帮助。顺便说一句,这是通过 LINUX 实现的。

谢谢!

最佳答案

awk 中,这似乎非常简单:

awk '$1=="thissample000"{$4="0"}1' file

但这会重新格式化输出。所以我们需要 gawk 及其 split 实现:

awk '$1=="thissample000"{split($0, a, FS, seps); a[4]="0"; for (i=1;i<=NF;i++) printf("%s%s", a[i], seps[i]);print"";next}1' file

关于linux - 如何在特定条件下更改特定字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53004788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com