【发布时间】:2011-05-21 17:30:32
【问题描述】:
我有 2 个文件 file_A 和 file_B。文件 file_A 包含文件名,然后是代码行。 此代码行可以包含随机类型的字符,例如空格,:等。它看起来像这样。请注意,文件中的代码行没有被 () 包围。这仅用于说明目的。
bash$ cat file_A
file_name1 (code line a)
file_name1 (code line b)
file_name2 (code line c)
file_name2 (code line d)
file_name2 (code line e)
文件file_B包含file_name以及file_A中的频率
bash$cat 文件_B
file_name1 2
file_name2 3
我希望输出为:(频率、文件名、代码行)
2 file_name1 (code line a)
2 file_name1 (code line b)
3 file_name2 (code line c)
3 file_name2 (code line d)
3 file_name2 (code line e)
bash$ join -1 1 -2 1 file_B file_A > file_C
我将 file_C 作为(我将连接字段作为第一个字段)
file_name1 2 (code line a)
file_name1 2 (code line b)
file_name2 3 (code line c)
file_name2 3 (code line d)
file_name2 3 (code line e)
如何获得第一场的频率场?
我知道通过 join 我可以使用 -o 格式并在输出中提及我想要的字段和顺序。但是我怎么说把所有都放在代码行中(可以包含任何东西,所以没有分隔符)这样
谢谢,
【问题讨论】:
-
请编辑您的问题并使用编辑器中的 101010 按钮保留文件 sn-ps 的格式
-
这个问题已经解决了。我可以使用 sn-p 来自:#!/bin/ksh awk ' { for (i=4; i
-
您可以发布您的解决方案作为答案,然后接受它。这样,来自 Google 的其他用户就可以清楚地看到解决方案是什么。
-
既然您找到了自己问题的答案,请将其发布为答案,而不是评论。这将允许人们支持它(如果他们喜欢它)或批评它(如果他们不喜欢它)。这也使您的答案对可能有类似问题的其他人更具可读性。您可以在延迟后将自己的答案标记为已接受。