1

Мне нужно объединить два очень больших списка.

fILE1.TXT

  • Вашингтон |
  • Огайо |
  • Дублин |
  • Лондон |
  • Милан |

file2.txt

  • Greg
  • Том
  • Павел
  • Sharon
  • Билл

output.txt

  • Вашингтон | Greg
  • Огайо | Том
  • Дублин | Пол
  • Лондон | Sharon
  • Милан | Билл

Как я могу сделать это в Windows?

4 ответа4

1

Я получил рабочее решение. Вставил строки в Excel и экспортировал его как текстовый файл, а не как файл XLS.

0

командная строка, вар 1:

powershell $f1=gc File1.txt;$f2=gc File2.txt;for($i=0;$i-lt$f1.length;$i++){$f1[$i]+$f2[$i]}>Output.txt

командная строка, вар 2:

powershell $f1=gc File1.txt;$f2=gc File2.txt;for($i=0;$i-lt$f1.length;++$i){$f1[$i]+$f2[$i]^>^>Output.txt}

паста-d.ps1

$f1=gc File1.txt;$f2=gc File2.txt;for($i=0;$i-lt$f1.length;++$i){$f1[$i]+$f2[$i]>>Output.txt}
0

Если данных не слишком много, вы можете сделать это с помощью MS Office или LibreOffice. Загрузите два текстовых файла, обрежьте и вставьте их в разные столбцы электронной таблицы (столбец A для файла 1, столбец b для файла 2), а затем вырезайте и вставляйте (специальный, необработанный текст) обратно в текстовый документ.

Это не красиво, но это будет работать с ручной работой с вашей стороны.

0

Вы можете сделать это с помощью утилиты командной строки paste которая поставляется с моей оболочкой Hamilton C. Если это разовая вещь, вы будете счастливы с бесплатной версией моей оболочки C. Полное раскрытие: я автор.

paste -d \0 File1.txt File2.txt > Output.txt

Вот как это выглядит на ваших данных:

176 C% cat File1.txt
Washington|
Ohio|
Dublin|
London|
Milan|
177 C% cat File2.txt
Greg
Tom
Paul
Sharon
Bill
178 C% paste -d \0 File1.txt File2.txt
Washington|Greg
Ohio|Tom
Dublin|Paul
London|Sharon
Milan|Bill

Cygwin также включает в себя paste но для ее использования вам необходимо убедиться, что все строки заканчиваются только символом новой строки (\n) в стиле Unix, а не комбинацией возврата каретки-новой строки (\r\n) Windows или вы получите это:

179 C% \cygwin\bin\paste -d \0 File1.txt File2.txt
Gregington|
Tomo|
Paulin|
Sharon|
Billn|

paste Cygwin лечит \r как обычный символ. На экране он перемещает курсор в начало строки, перезаписывая то, что было там.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .