【发布时间】:2018-08-17 12:38:50
【问题描述】:
我有 .txt 文件,如下一个,几行:
018 1003 229 1842 1A1 493246.2 7689486.2
018 1003 229 1841 1A2 493233.6 7689535.4
018 1003 229 1840 1A1 493286.9 7689515.8
018 1003 229 1839 1A2 493274.7 7689562.9
我需要在此条件下添加一个额外的列来放置值
If 1A1 new value=(1003 + 1)
If 1A2 new value=(1003 - 1)
想要的输出
018 1003 229 1842 1A1 493246.2 7689486.2 1004
018 1003 229 1841 1A2 493233.6 7689535.4 1002
018 1003 229 1840 1A1 493286.9 7689515.8 1004
018 1003 229 1839 1A2 493274.7 7689562.9 1002
请注意,这是一个示例,此处的第 2 列是 1003,但对于其他文件可以是 1010 或 1001 等。
我正在使用
cat ${seq}_${n_rline}.s01 |awk '{if ($5="1A1")print $0, ($2 + 1);else if ($5="1A2")print $0, ($2 - 1)} '> test100.txt
我得到的输出是
018 1003 229 1842 1A1 493246.2 7689486.2 1004
018 1003 229 1841 1A1 493233.6 7689535.4 1004
018 1003 229 1840 1A1 493286.9 7689515.8 1004
018 1003 229 1839 1A1 493274.7 7689562.9 1004
018 1003 229 1838 1A1 493329.0 7689544.6 1004
所以我要替换所有的 1A2,因此最后一列全是 1004。
知道如何解决这个问题吗?
【问题讨论】:
标签: multiple-columns data-manipulation