Windows与Unix命令cat等效吗?


203

我想做unix“ cat”的确切工作,但是要在我的PC上做。Windows命令行是否有一个简单的等效命令?

具体来说,我想从文件夹中给定类型的所有文件创建文件

在Unix中:

cat *fna >all_fna_files.fna

(将所有“ .fna”文本文件连接为一个大文本文件)


这些建议都不能接受STDIN的重定向。

2
Powershell:cat file.txt
Kolob Canyon

Answers:


252

type

它可在command.comcmd和PowerShell上运行(尽管在后者中,它是的别名Get-Content,所以是cat,因此您可以使用其中一种)。从维基百科文章(重点是我的):

在计算中,类型是各种VMS中的命令。AmigaDOS,CP / M,DOS,OS / 2和Microsoft Windows命令行解释器(shell),例如COMMAND.COM,cmd.exe,4DOS / 4NT和Windows PowerShell。用于显示指定文件的内容。它类似于Unix cat命令。

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
内容丰富的答案,所以+1。希望我可以为Microsoft赋予-1,因为它的命令名称完全模棱两可。type filename让我认为该命令应返回文件类型,而不是文件内容!
PenguinCoder 2012年

28
猫似乎并没有好多少。
David Boike 2012年

9
@davidboike更好,因为它实际上意味着并代表其作用:cat程序是一个标准的Unix实用程序,用于连接和列出文件。名称是catenate的缩写,是catenate的同义词。 维基百科文章您可以对MS-DOS type命令说同样的话吗?
PenguinCoder 2012年

11
@PenguinCoder除了type不连接文件;只是将type它们的内容显示在屏幕上。在示例中,实际上是合并文件而不是type命令的管道。
安迪2012年


22

在命令外壳中:

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

(但是,在此之后,命令shell使用control-Z作为文件标记的结尾,因此在某些情况下不适合)。

在PowerShell中:

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

并且您可以控制(使用-Encoding参数)文件编码(允许通过对读写使用不同的编码来进行转码)。


8
PowerShell的别名catGet-Content了。它旨在接受许多基本的Linux命令,而无需进行任何修改(如果有的话)。
鲍勃

1
鲍勃,除非涉及开关和选项。
乔伊2012年

@Richard:复制/ ba + b + c output.txt不会在Ctrl-Z上进行检查。如果文件中没有ctrl-Z,则两个变体都将复制整个文件。
Tonny 2012年

2
请注意,您也可以包含通配符,在Windows中通配符的工作方式意味着您不会被不包含a的扩展列表所+copy [/b] *.fna all_fna_files.fna
困扰

如果我从以前的测试中回想起,曾经使用COPY和/ B进行串联,将忽略CTRL-Z / EOF标记,并且可以正确进行串联!但从副本/来判断?您可能需要做很多/ B,好像在复制之后,在每个src文件之后和dest文件之后似乎..奇怪。
barlop 2012年

1

我刚刚以以下方式在DOS(Windows 7 Pro)中使用了cat命令,并将3个文件(log1.txt,log2.txt,log3.txt)成功合并到一个文件中:

cat log*.txt >> myBigLogFile.txt 

注意:cat log*.txt > myBigLogFile2.txt也提供相同的结果,但是它将覆盖先前的文件。


3
也许您的Windows操作系统是GNU,或者您的路径中有Cygwin,或者正在使用Powershell,因为干净的Windows 7系统上不存在cat。DOS不再是一回事,但是大多数人会用它来引用cmd.exe。
Shanteva '16

1
Windows CMD和MS-DOS是不同的东西cat在cmd和DOS中都没有命令,cat在powershell中只有别名
phuclv

您还可以使用type命令type *.txt > file.merge
Riz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.