「猫」は何に使用されますか?


13

catコマンドがいくつかのオンラインで出てくるのを見てきましcatたが、単純なコマンドラインのことをやっている人のコンテキストで何が何をするのか興味がありました。

回答:


12

cat主な目的は、詐欺にある猫の enateファイル。cat file1 file2 ...内容が表示されfilefile2内容が単一のファイルにあったかのように、次々に、他の。マンページを参照してください:

NAME
       cat - concatenate and print files

次のいずれかの使用を目的としています。

  • ターゲットコマンドはファイルから読み取ることができず、複数のファイルを渡す必要があります。例はtrユーティリティです。通常、1つのファイルで次のことを行います。

    tr < file
    

    ただし、複数のファイルがある場合、リダイレクトは使用できないため、次の操作を行う必要があります。

    cat file1 file2 ... | tr
    
  • ターゲットコマンド複数のファイルから読み取ることができますが、複数のファイルを指定すると動作が変わる場合があります。例はwc、各ファイルのカウントをファイル名とともに出力します。ファイル名なしで、合計だけが必要な場合があります。

あなたが遭遇そのほとんどのコマンドを覚えておいてください(grepsedawksort、...)完全に罰金ファイルを読み込むことができます。

あなたがしたい場合は閲覧、ファイルの内容を使用してページャを - lessmoreの両方の表示用にファイルを提示する極めて可能であり、そしてはるかに便利に使用するにしています。


:あなたは、プロセスやコマンド置換とそれを組み合わせることができますようリダイレクションは非常によく、複数のファイルで使用することができる< <(cat file[12]) trだけでなく、として<<<$(cat file[12]) tr複数のファイルをリダイレクトするために、両方の完全に有効な方法です。もちろんcat、そのためにも必要です。配管だけが唯一の方法ではありません。
デザート

@dessertは、つまらないものである必要がある場合、そのリダイレクトはコマンドのstdout(または逆の場合はstdin)を表す単一のファイルのみを使用します。Bashは、zshのような真のマルチファイルリダイレクトをサポートしていません。
ムル

9

catUnixライクなオペレーティングシステムで最も頻繁に使用されるコマンドの1つです。テキストファイルに関して3つの関連機能があります。

  1. それらを表示する
  2. それらのコピーを結合する
  3. 新しいものを作成します。
  4. ファイルをコピーする

catの一般的な構文は次のとおりです。

cat [options] [filenames] [-] [filenames]

ファイルを読む

catの最も一般的な使用法は、ファイルの内容を読み取ることであり、catはこの目的に最も便利なプログラムであることがよくあります。ディスプレイモニタで表示するためにテキストファイルを開くために必要なことは、単語catに続けてスペースとファイル名を入力し、Enterキーを押すことだけです。たとえば、次の例では、file1という名前のファイルの内容が表示されます。

cat file1

連結

猫の2番目の役割は連結です。(これは猫の好奇心の強い名前の元です。)元のファイルには影響はありません。

たとえば、次のコマンドは、3つのファイルfile1、file2、およびfile3の内容のコピーを連結します。

cat file1 file2 file3

各ファイルの内容がモニター画面に表示されます。この出力は、出力リダイレクト演算子を使用して、file4などの別のファイルに次のように簡単にリダイレクトできます。

cat file1 file2 file3 > file4

ファイル作成

@muruコメントのおかげで:catは自分自身ではなくシェルリダイレクト機能に応じて新しいファイルを作成できます

小さなファイルの場合、これは多くの場合、vi、gedit、またはその他のテキストエディターを使用するよりも簡単です。catを入力し、その後に出力リダイレクト演算子と作成するファイルの名前をENTER入力し、Ctrldキーを押して最後に同時に押します。

たとえば、次のように入力して、file1という名前の新しいファイルを作成できます。

cat > file1

次にENTERCtrldキーを同時に押します。

PS1:file1という名前のファイルが既に存在する場合、上書きされます

PS2:追加演算子の>>例cat >> file1 を使用して、終了したファイルに追加できます

ファイルをコピーする

catコマンドを使用して(シェルリダイレクト機能に応じて)新しいファイルを作成し、既存のファイルからデータを転送することもできます。例:ファイルのコピーを作成しますoldfile.txt

cat oldfile.txt > newfile.txt

参照:


1
日時3:catこれらのファイルは作成されていません-リダイレクトを使用したのはシェルです。よくやったかもしれませんecho foo > file1
ムル

@muruあなたは完全に正しいですが、それはまだcatコマンドの使用です
-Maythux

1
いいえ、そうではありません。あなたcatは、実際に他の何かによって行われていることに帰属しています。たとえば、less file1 > file2(またはgrep '.*' file1 > fileor awk 1 file1 > file2または...)を実行しても同じ効果があります。Ditto for4。これらは単なる誤用です。
ムル

私はそれをちょうど使用して> file同じ結果を与えることができることを知っていますが、猫でそれを行うことは有効だと考えることはできませんか?!
Maythux

1
あなたは、可能ならば、あなたはそれが指定したcatファイルを作成されていません。catファイルを作成またはコピーすると言うのは、単なる偽です。
ムル

1

ファイルの内容を表示するために使用できます。例:cat "my file.txt"。またman cat、何catに使用できるかについての詳細を表示することもできます。


0

シェルリダイレクト(またはパイピング)を使用したファイル作成の別の方法を次に示しますcat

cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF

cat << EOF文字列EOFが再び検出されるまで、次の行を出力します。次に、>>>)は出力をファイルにリダイレクトしますfoo.sh。あるいは、rootとしてファイルを作成する必要がある場合、コマンドによって実行されるコマンドteetee -a)に出力をパイプすることができますsudo

cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
  • 上記により、ファイルchmod +xが正常に作成されると()ファイルが実行可能になります(&&)。
  • 一部の文字の特別な意味(など$)は\、の出力内で(で)エスケープする必要がありcatます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.