Windows tương đương với con mèo lệnh Unix là gì?


203

Tôi muốn làm chính xác những gì unix "cat" làm, nhưng trên PC của tôi. Có một lệnh tương đương đơn giản cho dòng lệnh Windows?

Cụ thể tôi muốn tạo một tệp từ tất cả các tệp thuộc loại đã cho trong một thư mục

Trong Unix:

cat *fna >all_fna_files.fna

(kết hợp tất cả các tệp văn bản ".fna" thành một tệp văn bản lớn)


Không có đề xuất nào trong số những đề xuất này có thể chấp nhận chuyển hướng của STDIN.
sẽ

2
Powershell:cat file.txt
Hẻm núi Kolob

Câu trả lời:


253

type

Nó hoạt động trên command.com, cmdvà PowerShell (mặc dù trong cái sau nó là một bí danh cho Get-Content, như vậy là cat, vì vậy bạn có thể sử dụng một trong hai). Từ bài viết Wikipedia (nhấn mạnh của tôi):

Trong điện toán, gõ là một lệnh trong các VMS khác nhau. Các trình thông dịch dòng lệnh (shell) của AmigaDOS, CP / M, DOS, OS / 2 và Microsoft Windows, chẳng hạn như HOL.COM, cmd.exe, 4DOS / 4NT và Windows PowerShell. Nó được sử dụng để hiển thị nội dung của các tập tin được chỉ định. Nó tương tự như lệnh mèo 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

6
Câu trả lời thông tin tốt, nên +1. Mong muốn rằng tôi có thể cho Microsoft -1 mặc dù cho tên lệnh hoàn toàn mơ hồ. type filenamelàm cho tôi nghĩ rằng lệnh sẽ trả về loại tệp, không phải nội dung của tệp!
PenguinCoder

28
Mèo không thực sự có vẻ tốt hơn nhiều.
David Boike

9
@davidboike Nó tốt hơn nhiều vì nó thực sự có nghĩa và đại diện cho những gì nó làm: Chương trình mèo là một tiện ích Unix tiêu chuẩn nối và liệt kê các tệp. Tên này là viết tắt của catenate, một từ đồng nghĩa của concatenate. Bài viết Wikipedia Bạn có thể nói tương tự cho lệnh MS-DOS không type??
PenguinCoder

11
@PenguinCoder Ngoại trừ typekhông ghép các tệp; nó chỉ typelà nội dung của họ trên màn hình. Đó là đường ống trong ví dụ thực sự là kết hợp các tệp chứ không phải typelệnh.
Andy

5
MS-DOS có khả năng được thừa hưởng TYPEtừ CP / M bằng cách sử dụng QĐOS. Lệnh TYPE hiển thị nội dung của tệp nguồn ASCII ufn trên đĩa hiện được ghi tại thiết bị điều khiển.
một CVn

22

Từ trình vỏ lệnh:

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

(Nhưng theo sau các shell lệnh sử dụng control-Z làm phần cuối của điểm đánh dấu tệp, do đó không phù hợp trong một số trường hợp).

Trong PowerShell:

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

và bạn có thể kiểm soát (sử dụng -Encodingtham số) mã hóa tệp (cho phép chuyển mã bằng cách sử dụng mã hóa khác nhau để đọc và ghi).


8
PowerShell bí danh catđể Get-Contentquá. Nó được thiết kế để chấp nhận nhiều lệnh Linux cơ bản mà không cần sửa đổi nhiều.
Bob

1
Bob, ngoại trừ nếu các công tắc và tùy chọn có liên quan.
Joey

@Richard: Sao chép / ba + b + c output.txt không kiểm tra trên Ctrl-Z. Cả hai biến thể sẽ sao chép toàn bộ tệp nếu không có ctrl-Z trong tệp.
Tonny

2
Lưu ý rằng bạn cũng có thể bao gồm các ký tự đại diện, cách các ký tự đại diện hoạt động trong các cửa sổ có nghĩa là bạn sẽ không bị rối bởi danh sách mở rộng không chứa a +, vì vậy copy [/b] *.fna all_fna_files.fna..
Random832

nếu tôi nhớ lại từ một thử nghiệm cũ mà tôi đã từng làm, sử dụng COPY với / B để ghép nối, sẽ bỏ qua các dấu CTRL-Z / EOF và sẽ thực hiện ghép nối đúng cách! nhưng đánh giá bằng bản sao /? bạn có thể cần phải thực hiện nhiều / B như có vẻ như sau khi sao chép, sau mỗi tệp src và sau tệp Dest .. lạ.
barlop

1

Tôi vừa sử dụng lệnh cat trong DOS (Windows 7 Pro) theo cách sau và đã hợp nhất thành công 3 tệp (log1.txt, log2.txt, log3.txt) thành một tệp duy nhất:

cat log*.txt >> myBigLogFile.txt 

Lưu ý: cat log*.txt > myBigLogFile2.txtcũng cung cấp kết quả tương tự, nhưng nó sẽ ghi đè lên tệp trước đó.


3
có thể bạn có GNU cho Windows hoặc Cygwin trong đường dẫn của bạn hoặc đang sử dụng powershell vì mèo không tồn tại trên hệ thống Windows 7 sạch. DOS không còn là một thứ nữa, nhưng hầu hết mọi người sẽ sử dụng nó để tham khảo cmd.exe.
Chaieva

1
Windows CMD và MS-DOS không giống nhau . Không có catlệnh nào trong cả cmd và DOS, chỉ có catbí danh trong powershell
phuclv

bạn cũng có thể sử dụng typelệnhtype *.txt > file.merge
Riz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.