Unix komut kedinin Windows eşdeğeri nedir?


203

Unix "cat" ın ne yaptığını tam olarak yapmak istiyorum, ancak bilgisayarımda. Windows komut satırı için basit bir eşdeğer komut var mı?

Özellikle, bir klasördeki belirli bir türdeki tüm dosyalardan bir dosya oluşturmak istiyorum.

Unix'te:

cat *fna >all_fna_files.fna

(tüm ".fna" metin dosyalarını tek bir büyük metin dosyasına birleştirir)


Bu önerilerden hiçbiri STDIN yönlendirmesini kabul edemez.
olacak

2
Powershell:cat file.txt
Kolob Kanyonu,

Yanıtlar:


253

type

Bu arasında çalışır command.com, cmd(ikincisi de onun için bir takma olsa ve PowerShell Get-Contentböylece deyişle, catya da kullanmak böylece,). Gönderen Wikipedia makalesinin (vurgu benim):

Hesaplamada, tür çeşitli VMS’de bir komuttur. AmigaDOS, CP / M, DOS, OS / 2 ve Microsoft Windows komut satırı COMMAND.COM, cmd.exe, 4DOS / 4NT ve Windows PowerShell gibi tercümanlar (kabuklar). Belirtilen dosyaların içeriğini görüntülemek için kullanılır. Unix cat komutuna benzer.

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

6
İyi bilgilendirici cevap, yani +1. Tamamen belirsiz bir komut adı için Microsoft'a -1 verebilmeyi diliyorum. type filenamekomutun dosyanın içeriğini değil, dosya türünü döndürmesi gerektiğini düşündürüyor!
PenguinCoder

28
Kedi gerçekten daha iyi görünmüyor.
David Boike

9
@davidboike Çok daha iyidir çünkü aslında ne anlama geldiğini ve ne anlama geldiğini gösterir: Cat programı, dosyaları birleştiren ve listeleyen standart bir Unix yardımcı programıdır. Adı, bir eş anlamlı eş anlamlısı olan katenin kısaltmasıdır. Wikipedia Makale MS-DOS typekomutu için aynı şeyi söyleyebilir misiniz ??
PenguinCoder

11
@PenguinCoder Except typedosyaları birleştirmez; sadece typeekrana içerikleri. Örnekte boru değil, aslında dosyaları birleştiren typekomuttur.
Andy,


22

Komut kabuğundan:

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

(Ancak bu komut, kontrol işaretleyicisinin bir sonu olarak control-Z kullanımını engeller, bu nedenle bazı durumlarda uygun değildir).

PowerShell'de:

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

ve ( -Encodingparametreyi kullanarak ) dosya kodlamasını (okuma ve yazma için farklı kodlama kullanarak kodlamaya izin verir) kontrol edebilirsiniz .


8
PowerShell takma adları catiçin Get-Contentde. Pek çok temel Linux komutunu, eğer varsa, herhangi bir değişiklik yapmadan, kabul etmek için tasarlanmıştır.
Bob

1
Bob, anahtarlar ve seçeneklerin dahil olup olmadığı hariç.
Joey,

@Richard: Kopyala / ba + b + c output.txt Ctrl-Z için kontrol etmez. Dosyada NO ctrl-Z varsa, her iki değişken de tüm dosyayı kopyalar.
Tonny

2
Joker karakterleri de dahil edebileceğinizi unutmayın, joker karakterlerin pencerelerde çalışmasının yolu +, a içermeyen bir genişletme listesiyle karıştırılmayacağınız anlamına gelir , yani copy [/b] *.fna all_fna_files.fna..
Random832

bir kez yaptığım eski bir testten hatırlarsam, birleştirmek için / B ile COPY kullanmak CTRL-Z / EOF işaretleyicilerini yok sayar ve birleştirme işlemini doğru şekilde yapar! fakat kopya ile yargılamak /? Her src dosyasından sonra ve dest dosyasından sonra belki kopyadan sonra göründüğü gibi / B yapmanız gerekebilir .. garip.
barlop

1

DOS komutunu DOS'ta (Windows 7 Pro) aşağıdaki şekilde kullandım ve 3 dosyayı (log1.txt, log2.txt, log3.txt) tek bir dosyada başarıyla birleştirdim:

cat log*.txt >> myBigLogFile.txt 

Not: cat log*.txt > myBigLogFile2.txtAyrıca aynı sonucu verin, ancak önceki dosyayı geçersiz kılar.


3
belki Windows için GNU'ya veya yolunuzdaki Cygwin'e sahipsiniz veya kedi temiz bir Windows 7 sisteminde bulunmadığından powershell kullanıyorsunuz. DOS artık bir şey değil, ancak çoğu kişi onu cmd.exe'ye başvurmak için kullanır.
Shanteva

1
Windows CMD ve MS-DOS aynı şey değildir . catHem cmd hem de DOS'ta komut yoktur , sadece catpowershell'deki diğer ad
phuclv

typekomutunu da kullanabilirsiniztype *.txt > file.merge
Riz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.