【发布时间】:2017-01-11 12:22:57
【问题描述】:
我需要帮助将一个文件 (File-1.txt) 中的值(数字)替换为另一个文件 (File-2) 中的名称(字符串),该文件包含第一列中的值和第二列中的相应名称.两个文件如下:
文件-1.txt
(0, ':', [])
(1, ':', [18])
(2, ':', [20, 41])
(3, ':', [18])
(4, ':', [17])
(5, ':', [])
(6, ':', [])
文件-2.txt
1 ALA_A_87
2 THR_A_127
3 GLY_A_128
4 ILE_A_130
5 THR_A_166
6 THR_A_167
预期输出:
(ALA_A_87, ':', [THR_A_127])
(THR_A_127, ':', [ALA_A_87, GLY_A_128, ILE_A_130])
(GLY_A_128, ':', [THR_A_127, 5])
(ILE_A_130, ':', [THR_A_127])
(THR_A_166, ':', [GLY_A_128, THR_A_167])
(THR_A_167, ':', [THR_A_166])
我一直在尝试一些 awk 代码,但没有运气!! awk 代码如下:
awk -F, '
BEGIN {
subs="ALA_A_87 THR_A_127 GLY_A_128 ILE_A_130 THR_A_166 THR_A_167";
split( subs, subs_arr );
}
NR == 1 {
print;
next
}
NR>1{
for i in {1 2 3 4 5 6 }; {
$i = subs_arr[ $i++ ];
}
print
}
' File-1.txt
在这里,我提供了要在代码本身中替换的名称和值,但如果它可以作为外部文件 (File-2.txt) 提供,并将 File-1.txt 中的数字与File-2.txt 的第一列,并将 File-1.txt 中的数字替换为 File-2.txt 中显示的相应名称。帮我解决这个代码。
提前致谢
【问题讨论】:
-
你的预期输出应该如何?
-
我鼓励您不要为错误道歉,尤其是那些不会使帖子无效的错误。您应该进行更改(如果您认为需要)并继续前进。您的意见与其他人一样有效。
-
@EdMorton:
我们真的必须费力地读完你对 OP 粗鲁的第一句话吗?“我觉得五行数据就可以了” 就足够了。 -
@EdMorton:我觉得你的评论是不必要的粗鲁和罗嗦,讽刺的是,当你评论 OP 的粗鲁和罗嗦时,我就这么说了。当你只需要指出数据可以被削减时,你为什么觉得需要讽刺?我的
<strike>标签是有效的 HTML,它在帖子中有效,但在 cmets 中无效,而且我没有看到其他方式来传达相同的意图。你的评论有效果,只是因为OP的谦虚,我的无效是因为你没有这种谦虚,而是选择了争论和反击而不是纠正你的错误。 -
@EdMorton:你是说 “我们真的需要遍历 50 行输入吗” 不是讽刺的意思吗?你似乎很方便地去掉了大写字母,这对我来说并不是一个真正的问题。我不再有兴趣回应你为自己的粗鲁辩护的努力。