web-dev-qa-db-ja.com

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

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

11
cosmoflop12

catの主な目的は、concatenateファイルです。 cat file1 file2 ...は、filefile2、およびその他のコンテンツを1つのファイルにあるかのように順番に表示します。 manpage を参照してください:

NAME
       cat - concatenate and print files

次のいずれかの使用方法を想定しています。

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

    tr < file
    

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

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

遭遇するほとんどのコマンド(grepsedawksort、...)は、ファイルを完全に読み取ることができることに注意してください。

ファイルの内容をviewしたい場合は、a pager- less を使用し、 more は両方とも、表示用にファイルを提示する能力が非常に高く、使用するのがはるかに便利です。

12
muru

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

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

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

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

ファイルを読む

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

cat file1

連結

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

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

cat file1 file2 file3

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

cat file1 file2 file3 > file4

ファイル作成

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

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

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

cat > file1

次に押す ENTER 同時に Ctrl & d キー。

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

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

ファイルをコピーする

Catコマンドを使用して(dependingon shell redirect feature)、新しいファイルを作成し、既存のファイルからデータを転送することもできます。例:ファイルoldfile.txtのコピーを作成します。

cat oldfile.txt > newfile.txt

参照:

8
Maythux

ファイルの内容を表示するために使用できます。例:cat "my file.txt"man catを実行して、catの使用目的に関する詳細を表示することもできます。

1
Puneet Gill

別の方法 シェルリダイレクト(またはパイピング)とcatを使用したファイル作成の場合:

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

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

cat << EOF | Sudo tee foo.sh && Sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
  • 上記により、ファイルが正常に作成されると(chmod +x)ファイルが実行可能になります(&&)。
  • 一部の文字の特別な意味($)は、catの出力内で(\で)エスケープする必要があります。
0
pa4080