TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 8.99K subscribers
Post #6698 1.7K
Конкатенация в Windows и Linux

Многие знают команду cat, которая чаще всего используется для чтения файлов, и могут удивляться ее названию, недоумевая – причем тут кошки.

На самом деле команда cat выполняет конкатенацию – т.е. соединение текстовых строк.

Допустим нам надо объединить два текстовых файла. Самый простой вариант:

cat two.txt >> one.txt


После чего содержимое второго файла будет добавлено в конец первого. Но здесь мы использовали только перенаправление, а cat просто прочитал второй файл.

А если нужно наоборот, сначала содержимое второго файла, а потом первого?

В этом случае нам как раз потребуется конкатенация с перенаправлением результата в новый файл:

cat two.txt one.txt >> result.txt


Подобные задачи очень часто встречаются на практике, поэтому подобными инструментами нужно владеть на всех используемых платформах.

Говоря о платформе Windows на ум сразу приходит PowerShell, но, вопреки мнению о скудости и убогости, CMD тоже есть что нам предложить.

Практически полным аналогом команды cat в CMD является type.

И это не «тип» как вы могли подумать, а «тайп», глагол имеющий значение «печатать», сразу можно вспомнить «телетайп».

Те же самые команды будут выглядеть как:

type two.txt >> one.txt
type two.txt one.txt >> result.txt


И да, перенаправление в Windows тоже есть и было с незапамятных времен.

При этом работа и cat и type имеет свою особенность, они предполагают, что файл должен заканчиваться последовательностью EOF (End of File) ну или содержать в конце символ переноса строки.

Иначе вместо ожидаемого результата:

строка_файла_1
строка_файла_2


Вы можете получить и получите:

строка_файла_1строка_файла_2 


В Linux это обычно не составляет проблемы, все текстовые редакторы, хоть консольные, хоть графические корректно завершают файл. А вот тот же Блокнот способен доставить проблем.

Ну и наконец PowerShell, для этого у него имеется специальный командлет Get-Content. А так как PowerShell имеет объектную модель, то результатом его работы будет набор объектов, каждый из которых будет содержать строку исходного файла.

Чтобы прочитать содержимое файла выполните:

Get-Content -Path one.txt


Но можно написать проще:

Get-Content one.txt


Если нужно выполнить конкатенацию, то перечислите нужные файлы через запятую.

В PowerShell указанные выше команды будут выглядеть так:

Get-Content two.txt >> one.txt
Get-Content two.txt, one.txt >> result.txt


А так как PowerShell возвращает нам набор объектов по одному на строку, то для него не имеет значения завершается ли файл EOF или нет. Результат всегда будет ожидаем.
  • 👍 14
  • ❤ 1
More from @interface31
  1. Sep 22, 2026Post #6781
  2. Sep 22, 2026Debian или Ubuntu Нам достаточно часто задают вопрос: какой именно из этих дистрибутивов и…
  3. Sep 22, 2026Девопсы, сисадмины, архитекторы, техлиды (и вообще все, кто принимает технические или бизн…
  4. Sep 22, 2026Прекращена поддержка Debian 11 31 августа 2026 года поддержка дистрибутива Debian 11 прекр…
  5. Sep 22, 2026🚀 AI-Driven Digital Q: прямая трансляция новой ИИ-версии экосистемы для команд разработки…
  6. Sep 21, 2026Мертвые форматы Встретился случайно с одним своим знакомым, который работает в бюджетной о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →