使用awk在一列(字段)中编辑和保存所有数值

使用awk在一列(字段)中编辑和保存所有数值,awk,numeric,Awk,Numeric,我有一个大文件,我想使用awk编辑文件第二行中的所有数值。我不需要搜索模式,只需将指定的数字添加到已经存在的所有数字中即可。还要将此更改保存到新文件中 例如: Oldfile.pdb step 1 blabla step 2 blabla step 3 blabla step 4 blabla 将5添加到第2列中的所有值 newfile.pdb step 6 blabla step 7 blabla step 8 blabla step 9 blabla awk: awk: 如果第二列与要添

我有一个大文件,我想使用
awk
编辑文件第二行中的所有数值。我不需要搜索模式,只需将指定的数字添加到已经存在的所有数字中即可。还要将此更改保存到新文件中

例如:

Oldfile.pdb

step 1 blabla
step 2 blabla
step 3 blabla
step 4 blabla
将5添加到第2列中的所有值

newfile.pdb

step 6 blabla
step 7 blabla
step 8 blabla
step 9 blabla
awk:

awk:


如果第二列与要添加的值正好相反,则仅作详尽说明,@A-Ray的解决方案通常足够好

awk '{$2+=5;print}' YourFile

以防第二列正好与要添加的值相反,但@A-Ray的解决方案通常足够好

awk '{$2+=5;print}' YourFile

要使用从Oldfile.pdb到newfile.pdb所需的操作保存更改,请执行以下操作:

awk '{$2=$2+5; print $0}' Oldfile.pdb > newfile.pdb

要使用从Oldfile.pdb到newfile.pdb所需的操作保存更改,请执行以下操作:

awk '{$2=$2+5; print $0}' Oldfile.pdb > newfile.pdb

我来这里也是为了发同样的邮件。这将适用于所有
awk
s;无需单独选择
呆呆地看
。是的。正如@NeronLeVelu所指出的那样,习惯于写这篇文章有点危险。如果
$2
具有值
-5
的任何行都将从输出中排除。根据对输入的了解,这可能不是一个问题,但在使用该模式产生副作用时,一定要记住一些事情。不要依赖于
$2+=5
生成非零结果,而是使用
awk'{$2+=5}1'文件。谢谢。没有考虑所有的可能性来这里张贴相同的。这将适用于所有
awk
s;无需单独选择
呆呆地看
。是的。正如@NeronLeVelu所指出的那样,习惯于写这篇文章有点危险。如果
$2
具有值
-5
的任何行都将从输出中排除。根据对输入的了解,这可能不是一个问题,但在使用该模式产生副作用时,一定要记住一些事情。不要依赖于
$2+=5
生成非零结果,而是使用
awk'{$2+=5}1'文件。谢谢。未考虑所有可能的解决方案<代码>保存到一个新文件< /代码>对于所有UNIX命令都是相同的:<代码> CMD文件> TMP & MV TMP文件< /代码>。哦,当然有几个工具可能有一个选项来执行他们称之为“就地编辑”的操作,但实际上没有一个这样做,它们都在内部使用tmp文件(除了使用缓冲区而不是文件的
ed
),所以使用该选项可以为您节省一些输入字符,仅此而已。
将此更改保存到新文件的解决方案与所有UNIX命令相同:
cmd file>tmp&&mv tmp file
。哦,当然有几个工具可能有一个选项来执行他们称之为“就地编辑”的操作,但实际上没有一个这样做,它们都在内部使用一个tmp文件(除了
ed
,它使用缓冲区而不是文件),所以使用该选项可以为您节省一些键入字符,仅此而已。