У меня есть два текстовых файла. В первом файле 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