Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何根据公共字段组合文件?_File_Bash_Unix_Sorting - Fatal编程技术网

File 如何根据公共字段组合文件?

File 如何根据公共字段组合文件?,file,bash,unix,sorting,File,Bash,Unix,Sorting,可能重复: 我正试图根据冒号前面的数字,想出一个好方法来组合这两个文本选择(这是我将要处理的类似格式的文本示例)。这将在bash环境中完成,我已经尝试过使用cut和其他命令来实现它的方法,但是我还没有想出任何可行的方法 selection 1 1:829ede2828e9 2:893h8ew9nediucn 3:mdheuwe883ud8932 selection 2 1:stack 2:over 3:flow 输出将是类似于 1:stack:829ede2828e9 2:over:893

可能重复:

我正试图根据冒号前面的数字,想出一个好方法来组合这两个文本选择(这是我将要处理的类似格式的文本示例)。这将在bash环境中完成,我已经尝试过使用cut和其他命令来实现它的方法,但是我还没有想出任何可行的方法

selection 1
1:829ede2828e9
2:893h8ew9nediucn
3:mdheuwe883ud8932

selection 2
1:stack
2:over
3:flow
输出将是类似于

1:stack:829ede2828e9
2:over:893h8ew9nediucn
3:flow:mdheuwe883ud8932
因此,它本质上是根据冒号前面的数字来组合和匹配文件。此代码将用于处理大约39000行文本。我在这个时候被难倒了,所以我真的很感激能得到的任何帮助,谢谢!同时忘记提及数字不会一致(例如1,3,4,5,9,11,22),尽管两个文件/文本集都有相同的数字集。

您可以这样使用:

join -t: selection2.txt selection1.txt

这个怎么样:?^如果它们已排序,请执行该操作。如果它们不是,那么首先需要两个步骤对它们进行排序<代码>排序。我假设数字没有排序或连续?它们是独一无二的吗?在任何情况下,39000行都不会太多,因此您可以在内存中完成整个操作。我建议使用awk将该行拆分为一个number=>text关联数组,并组合输出。您也可以使用任何支持关联数组的脚本语言(Python、Ruby、Php、Perl等)来实现这一点。数字会被排序,但它们不会一致,因此可能会有1:SDD 3:SDD 4:ddsds 7:CDD等等,虽然这两组数据都具有相同的numbers@lacrosse1991在你的问题中添加这种情况(可能会缺少数字)可能是一个好主意,这样人们在提出解决方案时可以考虑到这一点*只要文件已排序。@there from here当然,但正如1991年曲棍球赛在评论中所证实的那样。是的,但值得一提的是,在你的回答中,为了未来游客的利益。