Unixコマンドcatに相当するWindowsとは何ですか?


203

私はunix "cat"がすることを正確にしたいのですが、私のPCで。Windowsコマンドラインに対応する簡単なコマンドはありますか?

具体的には、フォルダ内の特定の種類のすべてのファイルからファイルを作成したい

Unixの場合:

cat *fna >all_fna_files.fna

(すべての「.fna」テキストファイルを1つの大きなテキストファイルに結合します)


これらの提案はいずれも、STDINのリダイレクトを受け入れることができません。
ます

2
Powershell:cat file.txt
Kolob Canyon

回答:


253

type

これは、全体で働きcommand.comcmd(後者ではそれはの別名だけれども、およびPowerShellのGet-Contentそうです、catあなたがいずれかを使用できるよう、)。ウィキペディアの記事から(強調鉱山):

コンピューティングでは、タイプはさまざまなVMSのコマンドです。AmigaDOS、CP / M、DOS、OS / 2、およびCOMMAND.COM、cmd.exe、4DOS / 4NT、Windows PowerShellなどのMicrosoft Windowsコマンドラインインタープリター(シェル)。指定されたファイルの内容を表示するために使用されます。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

28
猫は本当にずっと良く見えません。
デビッドボイケ

9
@davidboikeそれは実際にそれが意味するものであり、それがすることを表すので、はるかに優れています:catプログラムは、ファイルを連結およびリストする標準のUnixユーティリティです。名前は、catenateの略語であり、concatenateの同義語です。 ウィキペディアの記事 MS-DOS typeコマンドでも同じことが言えますか??
PenguinCoder

11
@PenguinCoder Except typeはファイルを連結しません。それだけでtype画面にその内容をよ。typeコマンドではなく、実際にファイルを結合している例のパイピング。
アンディ


22

コマンドシェルから:

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パラメータを使用して)ファイルエンコーディングを制御できます(これにより、読み取りと書き込みに異なるエンコーディングを使用してトランスコーディングが可能になります)。


8
PowerShellは別名catGet-Contentすぎ。これは、多くの基本的なLinuxコマンドを、もしあれば、ほとんど変更せずに受け入れるように設計されています。
ボブ

1
ボブ、スイッチとオプションが関係する場合を除く。
ジョーイ

@Richard:コピー/ ba + b + c output.txtは、Ctrl-Zでチェックしません。ファイルにctrl-Zがない場合、両方の亜種はファイル全体をコピーします。
トニー

2
あなたもワイルドカードを含めることができます、ワイルドカードは、Windowsでの作業方法は、あなたが含まれていない拡張リストによって台無しにされないことを意味+するので、copy [/b] *.fna all_fna_files.fna...
Random832

私がかつてやった古いテストから思い出すと、/ BでCOPYを使用して連結し、CTRL-Z / EOFマーカーを無視し、連結を適切に行います!しかし、コピー/で判断しますか?コピーの後、各srcファイルの後、destファイルの後のように、多くの/ Bを実行する必要があるかもしれません。
barlop

1

DOS(Windows 7 Pro)で次のようにcatコマンドを使用し、3つのファイル(log1.txt、log2.txt、log3.txt)を単一のファイルに正常にマージしました。

cat log*.txt >> myBigLogFile.txt 

注:cat log*.txt > myBigLogFile2.txt同じ結果が得られますが、以前のファイルは上書きされます。


3
たぶん、あなたはあなたのパスにGNU for Windows、またはCygwinを持っているか、catがクリーンなWindows 7システム上に存在しないのでpowershellを使用しています。DOSはもはや問題ではありませんが、ほとんどの人はDOSを使用してcmd.exeを参照します。
シャンテバ

1
Windows CMDとMS-DOSは同じものではありませんcatcmdとDOSの両方にコマンドはなくcat、powershellのエイリアスのみ
-phuclv

あなたも使用できるtypeコマンドをtype *.txt > file.merge
Rizの
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.