Вопрос: Что такое эквивалент Windows для кошки команды Unix?


Я хочу сделать именно то, что делает unix «cat», но на моем ПК. Есть ли простая эквивалентная команда для командной строки Windows?

В частности, я хочу создать файл из всех файлов данного типа в папке

В Unix:

cat *fna >all_fna_files.fna

(который объединяет все текстовые файлы «.fna» в один большой текстовый файл)


122
2018-06-10 07:22


Источник


Ни одно из этих предложений не может принимать перенаправление STDIN. - will
Powershell: cat file.txt - Kolob Canyon


Ответы:


type

Он работает command.com, cmd, и PowerShell (хотя в последнем это псевдоним для Get-Content, так cat, поэтому вы можете использовать либо). Из Статья в Википедии (внимание мое):

При вычислении тип - это команда в различных VMS. AmigaDOS, CP / M, DOS, OS / 2 и интерпретаторы командной строки Microsoft Windows, такие как COMMAND.COM, cmd.exe, 4DOS / 4NT и Windows PowerShell. Он используется для отображения содержимого указанных файлов. Это аналогично команде кодов Unix.

C:\>echo hi > a.txt
C:\>echo bye > b.txt
C:\>type a.txt b.txt > c.txt
C:\>type c.txt
hi
bye

160
2018-06-10 07:47



Кошка действительно не выглядит намного лучше. - David Boike
@DavidBoike Хотя кошка из con_cat_enate AFAIR. - Mark Hurd
@davidboike Это намного лучше, потому что это на самом деле означает и означает то, что он делает: Программа cat - стандартная утилита Unix, которая объединяет и списывает файлы. Это аббревиатура catenate, синоним concatenate.  Статья Википедии Можете ли вы сказать то же самое для MS-DOS type Команда ?? - PenguinCoder
@PenguinCoder За исключением type не объединяет файлы; это просто types их содержимое на экран. Его трубопровод в примере, который фактически объединяет файлы, а не type команда. - Andy
MS-DOS, вероятно, унаследован TYPE от CP / M посредством QDOS. Команда TYPE отображает содержимое исходного файла ASCII ufn на текущем записанном диске на консольном устройстве. - Michael Kjörling


Из командной оболочки:

copy a.txt + b.txt + c.txt output.txt

(Но это следует за командовыми командами, использующими control-Z как конец маркера файла, поэтому в некоторых случаях они не подходят).

В PowerShell:

get-content a.txt,b.txt,c.txt | out-file output.txt

и вы можете управлять (используя -Encoding параметр) кодирование файла (что позволяет транскодировать с использованием различной кодировки для чтения и записи).


19
2018-06-10 07:33



Альянсы PowerShell cat в Get-Content слишком. Он предназначен для принятия многих базовых команд Linux без особых изменений, если они есть. - Bob
Боб, за исключением случаев, когда задействованы переключатели и опции. - Joey
@Richard: Копировать / b a + b + c output.txt не проверяется на Ctrl-Z. Оба варианта копируют весь файл, если в файле нет ctrl-Z. - Tonny
Обратите внимание, что вы также можете включить подстановочные знаки, способ использования шаблонов в окнах означает, что вы не будете испорчены списком расширений, не содержащим +, так copy [/b] *.fna all_fna_files.fna.. - Random832
если я вспомню из старого теста, который я когда-то сделал, используя COPY с / B для конкатенации, будет игнорировать маркеры CTRL-Z / EOF и будет выполнять конкатенацию правильно! но судя по копиям /? вам может понадобиться сделать много / B, как кажется, возможно, после копирования, после каждого файла src и после файла dest .. странно. - barlop


Я только что использовал команду cat в DOS (Windows 7 Pro) следующим образом и успешно объединил 3 файла (log1.txt, log2.txt, log3.txt) в один файл:

cat log*.txt >> myBigLogFile.txt 

Заметка: cat log*.txt > myBigLogFile2.txt также дают тот же результат, но он переопределит предыдущий файл.


2
2018-03-20 13:41



возможно, у вас есть GNU для Windows или Cygwin на вашем пути или используете powershell, потому что кошка не существует в чистой системе Windows 7. DOS больше не вещь, но большинство людей будут использовать ее для ссылки на cmd.exe. - Shanteva
Windows CMD и MS-DOS - это не одно и то же, Нет никаких cat команда только в cmd и DOS, только cat псевдоним в powershell - phuclv
вы также можете использовать type команда type *.txt > file.merge - Riz