Catコマンドがいくつかのオンラインのもので出てきたのを見て、cat
が何をしたのか、そして単純なコマンドラインのものをしている人のコンテキストで何をするのか興味がありました。
cat
の主な目的は、concatenateファイルです。 cat file1 file2 ...
は、file
、file2
、およびその他のコンテンツを1つのファイルにあるかのように順番に表示します。 manpage を参照してください:
NAME
cat - concatenate and print files
次のいずれかの使用方法を想定しています。
ターゲットコマンドはファイルから読み取ることができないため、複数のファイルを渡す必要があります。例は tr
ユーティリティです。通常、1つのファイルで次のことを行います。
tr < file
ただし、複数のファイルでは、リダイレクトを使用できないため、次の操作を行う必要があります。
cat file1 file2 ... | tr
wc
で、各ファイルのカウントをファイル名とともに出力します。ファイル名なしで、合計だけが必要な場合があります。遭遇するほとんどのコマンド(grep
、sed
、awk
、sort
、...)は、ファイルを完全に読み取ることができることに注意してください。
ファイルの内容をviewしたい場合は、a pager- less
を使用し、 more
は両方とも、表示用にファイルを提示する能力が非常に高く、使用するのがはるかに便利です。
cat
は、Unixライクなオペレーティングシステムで最も頻繁に使用されるコマンドの1つです。テキストファイルに関して3つの関連機能があります。
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
参照:
ファイルの内容を表示するために使用できます。例:cat "my file.txt"
。 man cat
を実行して、cat
の使用目的に関する詳細を表示することもできます。
別の方法 シェルリダイレクト(またはパイピング)とcat
を使用したファイル作成の場合:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
は、文字列EOF
が再び検出されるまで、次の行を出力します。 >
(>>
)は、出力をファイルfoo.sh
にリダイレクトします。または、ルートとしてファイルを作成する必要がある場合は、コマンドtee
によって実行されるコマンドSudo
(tee -a
)に出力をパイプできます。
cat << EOF | Sudo tee foo.sh && Sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x
)ファイルが実行可能になります(&&
)。$
)は、cat
の出力内で(\
で)エスケープする必要があります。