【发布时间】:2021-12-13 23:36:38
【问题描述】:
我遇到了一个对于高级 shell 用户来说似乎不太难的问题。这就是问题所在。
我有 2 个文件:
File1 格式如下:
ALPH 1 M GIF M 1 11.111 23.123 -4.412 1.00 0.00 A
ALPH 2 BA GIF M 1 22.222 78.251 -6.215 2.00 0.00 B
ALPH 3 C GIF M 1 22.223 46.321 -6.124 3.00 0.00 C
ALPH 4 D GIF M 1 23.333 15.214 -6.125 4.00 0.00 D
ALPH 5 AB GIF M 1 24.111 61.458 -8.214 5.00 0.00 E
ALPH 6 LM GIF M 1 25.333 78.214 -9.321 6.00 0.00 F
ALPH 7 BA GIF M 1 17.645 87.256 -9.365 7.00 0.00 G
ALPH 8 BA2 GIF M 1 14.125 19.365 -1.258 8.00 0.00 H
-
-
单列文件2:
-0.14
-0.47
-0.58
-0.69
-0.25
-0.69
-0.12
-0.44
我想将 File1 中的第 11 列替换为 File2 中的唯一列。我执行以下操作
paste File1 File2 | awk '{$11=$13;$13=""}1' > output
虽然它很好地替换了列,但它弄乱了我想保留的 File1 的原始格式。如您所见,File1 的所有字段之间存在不同数量的空格,即使在替换 $11 之后,我也希望保留它。
我尝试了几种方法,包括column 和printf,但似乎都没有奏效。也许我做错了什么。
有谁知道我如何最好使用 awk 或 sed 达到预期的效果?
谢谢!
罗希特
【问题讨论】: