タグ付けされた質問 「cat」

catは、ファイルを連結したり、特定のファイルを標準出力に出力したりするために使用される標準のUnixユーティリティです。

2
cat、dd、pv、または別の手順を使用してCD / DVDをコピーする方が良いですか?
バックグラウンド 一部のデータCD / DVDをISOファイルにコピーして、後でドライブで使用せずに使用しています。 私は手順をネットで探していますが、たくさん見つけました: を使用catしてメディアをコピーする:http : //www.yolinux.com/TUTORIALS/LinuxTutorialCDBurn.html cat /dev/sr0 > image.iso を使用しddてそうする(明らかに最も広く使用されている):http : //www.linuxjournal.com/content/archiving-cds-iso-commandline dd if=/dev/cdrom bs=blocksize count=count of=/path/to/isoimage.iso pvこれを達成するためだけに使用:詳細についてはman pv、以下を参照してください。 Taking an image of a disk, skipping errors: pv -EE /dev/sda > disk-image.img Writing an image back to a disk: pv disk-image.img > /dev/sda Zeroing a disk: pv …
22 linux  dd  cat  disk-image  pv 

2
以下file1 file2 | 猫—なぜ機能するのですか?
I USSときless file1 file2、私は「少ないバッファビューア」に示されている両方のファイルを取得しますが、less file1 file2 | catstdoutに付加し、両方のファイルの内容を印刷します。「less buffer viewer」を表示するか、次のコマンドの出力をstdoutに生成する必要があるかどうかは、どのようにしてわかりませんか?これを行うためにどのメカニズムが使用されますか?
21 pipe  cat  less 

2
端末ライン入力を終了するにはCtrl + D
私が行った場合 $ cat > file.txt テキストCtrl- DCtrl-D 質問1:私は、プレスが入力しない場合は、なぜ私が押す必要がありますCtrl- D二度? 私が行った場合 $ cat > file.txt PA用のBAM pshhh Ctrl-Z [2]+ Stopped cat > file.txt $ cat file.txt $ cat > file.txt pa bam pshhh Ctrl-Z [2]+ Stopped cat > file.txt $ cat file.txt pa bam pshhh 2行目でファイルが1行であるのはなぜですか?

2
なぜこのコマンドは非常に大きなファイルを作成するのですか?
今日私はいくつかの追加操作を試していましたが、私の好奇心でこれを実行しました(file1.txtは空ではなく、file2.txtは空でした): $ cat file1.txt >> file2.txt >> file1.txt しばらく時間がかかったのを見て、Ctrl+ Cを押して終了します。それまでに、file1.txtのサイズは数百MBでした。 ファイル名を切り替えても同じ効果は得られません。ファイルがこの順序である場合にのみ、無限リダイレクトが発生します。これが実際に何が起こっているのですか?

3
特定のディレクトリ内のすべてのファイルを日付順に連結するにはどうすればよいですか?最新のファイルが一番上にある必要がありますか?
そして、一番古いファイルが一番下にありますか? また、これを行うと、各HTMLファイルに含まれる冗長ヘッダーを削除することもできますか?私は自分自身が多くのHTMLファイルを連結しているのを見ています、そして最終的なファイルのファイルサイズを少し減らすといいでしょう。

3
tee + cat:出力を数回使用し、結果を連結します
たとえば、あるコマンドを呼び出すとecho、そのコマンドの結果を他のいくつかのコマンドで使用できますtee。例: echo "Hello world!" | tee >(command1) >(command2) >(command3) catを使用すると、いくつかのコマンドの結果を収集できます。例: cat <(command1) <(command2) <(command3) 私は両方のことを同時に行うことができるようにしたいのでtee、何か他の出力(たとえばecho私が書いたもの)でそれらのコマンドを呼び出してから、単一の出力ですべての結果を収集することができますcat。 それは、その結果を順に維持することが重要です。この手段の出力のラインcommand1、command2およびcommand3絡み合っが、(それがで起こるようにコマンドがあるとして注文するべきではありませんcat)。 そこよりも良い選択肢かもしれcatとteeが、それらは私がこれまで知っているものです。 入力と出力のサイズが大きくなる可能性があるため、一時ファイルの使用を避けたい。 どうすればこれができますか? PD:別の問題は、これがループで発生し、一時ファイルの処理が難しくなることです。これは私が持っている現在のコードであり、小さなテストケースで動作しますが、私が理解できない何らかの方法でauxfileから読み書きするときに無限ループを作成します。 somefunction() { if [ $1 -eq 1 ] then echo "Hello world!" else somefunction $(( $1 - 1 )) > auxfile cat <(command1 < auxfile) \ <(command2 < auxfile) \ …
18 pipe  cat  tee  concurrency 

4
cat x >> xがループするのはなぜですか?
次のbashコマンドは無限ループに入ります。 $ echo hi > x $ cat x >> x stdoutへの書き込みを開始catしたx後から読み続けていると推測できます。ただし、混乱を招くのは、私自身のcatのテスト実装が異なる動作を示すことです。 // mycat.c #include <stdio.h> int main(int argc, char **argv) { FILE *f = fopen(argv[1], "rb"); char buf[4096]; int num_read; while ((num_read = fread(buf, 1, 4096, f))) { fwrite(buf, 1, num_read, stdout); fflush(stdout); } return 0; } 私が実行した場合: $ …

3
小なり記号がbashのcatの代わりとして機能しないのはなぜですか?
「猫の無駄な使用」について聞いたところ、いくつかの提案が見つかりましたが、次の例ではbashシェルに何も出力されません。 < filename ただし、catを使用しても正常に機能します。 cat filename Fedora Core 18とGNU bashバージョン4.2.45(1)を使用しています。 編集:パイプの前でそれを使用しても動作しません。 < filename | grep pattern 一方、catを使用しても期待どおりに機能します。 cat filename | grep pattern EDIT2:明確にするために、私はこれを使用できることを知っています grep pattern < filename しかし、ここで/programming/11710552/useless-use-of-catを読み、コマンドの前で使用することもできます。ただし、コマンドの前では機能しません。

1
プログラムを最初にパイプから読み取り、次にキーボードから読み取る
対話型プログラムを検討してくださいinteractive。このプログラムはかなり頻繁に実行する必要があり、実行するたびに最初のいくつかのコマンドは同じです。明らかに、これらのコマンドを何度も入力しなければならないのは苦痛です。これらのコマンド(改行で区切られている)をファイルに収集しましたcmd。これでcat cmd | interactiveコマンドを実行できます。問題は、一度cmd完全に読み込まれ、interactiveEOFを受信して​​終了することです。 私がやりたいことは、最初interactiveにパイプから読み取りを行い(明らかにinteractive < cmd許容範囲内です)、EOFを受信したら、代わりにキーボードから読み取りを開始します。
17 command-line  pipe  cat  stdin 



2
echoとcatを使用してシリアルループバックをテストする予期しない結果
したがって、TxからRxへのワイヤを実行するだけでループバックされる標準のRS232シリアルポートがあります。私は2つの別々のターミナルを実行echoしてループバックをテストしていますcat: cat /dev/ttyS1 echo "hi" > /dev/ttyS1 私の問題は出力にあります。catを実行している端末に「こんにちは」が戻ってくるのを期待しますが、代わりにこれを取得します。 hi [2 newlines] hi [4 newlines] hi [8 newlines] hi [16 newlines] hi [32 newlines] hi ...など、I ctrl+ までc cat。 catを中断した後、再度実行すると、エコーを2回実行するまで「hi」は出力されません。 これは正常ですか?この動作が見られる理由は何ですか? 編集:改行で、私はASCIIを意味します0x0A。この出力にはキャリッジリターンはありません。
17 cat  serial-port  echo 

3
名前付きパイプからの連続読み取り(catまたはtail -f)
rsyslog特定のログイベントを記録するように設定しました/dev/xconsole: *.*;cron.!=info;mail.!=info |/dev/xconsole /dev/xconsole名前付きパイプ(fifo)です。ログに記録されているものを確認したい場合は、できますcat /dev/xconsole。コマンドcat /dev/xconsoleがファイルの読み取り後に終了せず、代わりにとして機能することを見て驚いていますtail -f。つまり、2つのコマンドは同じように動作します。 cat /dev/xconsole tail -f /dev/xconsole 誰かがその理由を説明してもらえますか? 2つの間に違いはありますか?
16 pipe  cat  tail  fifo 

7
echoとcatの実行時間にこのような違いがあるのはなぜですか?
回答この質問は、私は別の質問をさせて: 私は、次のスクリプトは、同じことを行う2つ目は、最初のものを使用しているため、はるかに高速であるべきと思ったcat何度もファイルを開く必要がなく、二つだけのファイルを開きます一度だけ変数をエコーし​​ます: (正しいコードについては、更新セクションを参照してください。) 最初: #!/bin/sh for j in seq 10; do cat input done >> output 第二: #!/bin/sh i=`cat input` for j in seq 10; do echo $i done >> output 入力は約50メガバイトです。 しかし、2番目の方法を試したときは、変数のエコーiが大規模なプロセスだったため、遅すぎました。また、2番目のスクリプトで問題が発生しました。たとえば、出力ファイルのサイズが予想よりも小さかったです。 私はまたのmanページを確認echoし、catそれらを比較します: echo-テキストの行を表示します cat-ファイルを連結し、標準出力に出力します しかし、違いはありませんでした。 そう: なぜ2番目のスクリプトでcatがとても速く、エコーがとても遅いのですか? それとも変数の問題ですiか?(そのマニュアルページで echoは「テキスト行」と表示されると言われているので、i。のような非常に長い変数ではなく、短い変数に対してのみ最適化されていると思います。しかし、それは単なる推測です。) そして、使用するときに問題が発生したのはなぜechoですか? 更新 間違って使用するseq 10代わりに使用しました`seq 10`。これは編集されたコードです: 最初: #!/bin/sh for j …

3
ダッシュファイルを読み取る方法
どのように私はそれを区切る以外の端末からダッシュファイルを読み込むことができます ./ たとえば読み取るために- file、我々はそれをすることによって読むことができます cat ./-file_name Q:同じことを達成するための代替方法はありますか?
15 bash  cat 

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