Объединение двух файлов txt, содержащих имя и фамилию в командной строке

У меня есть два текстовых файла. В первом файле 20 имен, перечисленных в отдельных строках, а во втором файле 20 фамилий, перечисленных в отдельных строках. Как я могу объединить эти файлы. Таким образом, окончательный текстовый файл содержит как имя, так и фамилию.

Я пробовал вставить. Но это добавило большого пространства между именами и фамилиями.

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

1 ответ
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

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *