如何从 Linux 中的 .txt 文件中的相同数字中减去列中的每个值?
How to subtract each value in a column from same number in a .txt file in Linux?
我在 Linux 中有一个 .txt 文件 (mydata.txt),我想减去一列中的每个值并将输出值保存在与旧列一起的新列中。例如,在下面的数据示例中,我将 C1 列中的每个值从 2 中减去,并将输出列 (C1_sub) 保存为新列,将 C2 的输出保存在列 C2_sub 中,依此类推。如果我有一个或多个列,我该怎么做?
C1 C1_sub C2 C2_sub C3 C3_sub
1 1 2 0 2 0
0 2 1 1 2 0
2 0 0 2 0 2
0 2 2 0 1 1
0.008 1.992 0 2 2 0
1.999 0.001 1 1 0 2
0 2 2 0 1 1
0 2 0.001 1.999 2 0
1 1 1 1 0 2
2 0 2 0 0.013 1.987
0 2 0.999 1.001 0 2
0 2 2 0 1 1
1 1 1.999 0.001 2 0
1.99 0.01 1.999 0.001 2 0
0 2 1.999 0.001 1 1
awk 'NR==1{print "C1", "C1_sub", "C2", "C2_sub", "C3", "C3_sub"; next}
{ print , 2 - ,, 2 - , , 2-}' OFS=\t input
我在 Linux 中有一个 .txt 文件 (mydata.txt),我想减去一列中的每个值并将输出值保存在与旧列一起的新列中。例如,在下面的数据示例中,我将 C1 列中的每个值从 2 中减去,并将输出列 (C1_sub) 保存为新列,将 C2 的输出保存在列 C2_sub 中,依此类推。如果我有一个或多个列,我该怎么做?
C1 C1_sub C2 C2_sub C3 C3_sub
1 1 2 0 2 0
0 2 1 1 2 0
2 0 0 2 0 2
0 2 2 0 1 1
0.008 1.992 0 2 2 0
1.999 0.001 1 1 0 2
0 2 2 0 1 1
0 2 0.001 1.999 2 0
1 1 1 1 0 2
2 0 2 0 0.013 1.987
0 2 0.999 1.001 0 2
0 2 2 0 1 1
1 1 1.999 0.001 2 0
1.99 0.01 1.999 0.001 2 0
0 2 1.999 0.001 1 1
awk 'NR==1{print "C1", "C1_sub", "C2", "C2_sub", "C3", "C3_sub"; next}
{ print , 2 - ,, 2 - , , 2-}' OFS=\t input