在命令行上合并两个包含姓名和姓氏的 txt 文件

在命令行上合并两个包含姓名和姓氏的 txt 文件

我有两个文本文件。第一个文件有 20 个名字,分行列出;第二个文件有 20 个姓氏,分行列出。我该如何合并这两个文件?因此,最终的文本文件既有名字,也有姓氏。

我尝试粘贴。但它在名字和姓氏之间添加了很大的空格。

$ paste name.txt surname.txt > names.txt

答案1

这些输入是否相关?如果相关,它们的顺序是否相同?如果不相关,您想要全部 400 种组合,还是其他组合?

如果您期望输出 20 行,并且这 20 行都是按匹配顺序排列的文件,那么您可能只想要:

paste -d ' ' name.txt surname.txt > names.txt

paste使用制表符作为默认输出字段分隔符。您可以man paste在大多数系统中了解这一点。

如果它们的顺序不同,您可以手动对它们进行排序,或者添加一些字段来对该自定义字段进行排序,然后按该字段连接它们。例如

$ cat name.txt
2 frodo
1 samwise
$ cat surname.txt
1 ganges
2 baggins
$ join -j1 <(sort -n name.txt) <(sort -n surname.txt)
1 samwise ganges
2 frodo baggins

相关内容