サーチ…


構文

  • cat [オプション] ... [ファイル] ...

パラメーター

オプション詳細
-n 行番号を印刷する
-v LFDとTAB以外の^とM-記法を使って非印字文字を表示する
-T タブ文字を^ Iで表示する
-E ラインフィード(LF)文字を$として表示する
-e -vEと同じ
-b 空でない出力行の数を指定し、-nをオーバーライドします。
-A -vETに等しい
-s 繰り返される空の出力行を抑止します。sは、squeezeを参照します。

備考

catはファイルと標準入力の両方から読み込み、それらを標準出力に連結することができます

ファイルの内容の印刷

cat file.txt

ファイルの内容を出力します。

ファイルにASCII以外の文字が含まれている場合は、それらの文字をcat -v象徴的に表示できます。制御文字が見えない状況では、これは非常に便利です。

cat -v unicode.txt

非常に頻繁に、インタラクティブな使用のために、よりlessmoreような対話的なページャを使用する方が良いでしょう。 ( lessよりもはるかに強力でありmore 、それを使用することをお勧めしますlessよりも頻繁にmore 。)

less file.txt

ファイルの内容を入力としてコマンドに渡す。通常、より良いと見なされるアプローチ( UUOC )は、リダイレクトを使用することです。

tr A-Z a-z <file.txt   # as an alternative to cat file.txt | tr A-Z a-z

コンテンツを最後から後方にリストする必要がある場合は、コマンドtacを使用できます。

tac file.txt

行番号付きの内容を印刷する場合は、 catと一緒に-nを使います:

cat -n file.txt

完全に明白なバイト単位の形式でファイルの内容を表示するには、標準的な解決方法が16進ダンプです。これは、正確なエンコーディングがわからない場合など、ファイルの非常に短いスニペットに適しています。標準の16進ダンプ・ユーティリティーはod -cHですが、表現はやや面倒です。一般的な置き換えにはxxdhexdumpます。

$ printf 'Hëllö wörld' | xxd
0000000: 48c3 ab6c 6cc3 b620 77c3 b672 6c64       H..ll.. w..rld

出力行番号を表示する

--number前に行番号を表示するには、 - --numberフラグを使用します。あるいは、 -nも同じことをします。

$ cat --number file

 1  line 1
 2  line 2
 3
 4  line 4
 5  line 5

行数をカウントするときに--number-nonblankをスキップするには、-- --number-nonblankまたは単に-bます。

$ cat -b file

 1  line 1
 2  line 2

 3  line 4
 4  line 5

標準入力から読み込む

cat < file.txt

出力はcat file.txtと同じですが、ファイルから直接ではなく標準入力からファイルの内容を読み込みます。

printf "first line\nSecond line\n" | cat -n 

|前のechoコマンド2行を出力します。 catコマンドは、行番号を追加するために出力に作用します。

ファイルを連結する

これがcatの主な目的です。

cat file1 file2 file3 > file_all

catは同様にパイプラインの一部としてファイルを連結するためにも使用できます。

cat file1 file2 file3 | grep foo

ファイルに書き込む

cat >file

fileという名前のファイルに保存されるテキストを端末に書くことができます

cat >>file

ファイルの最後にテキストを追加する点を除き、同じことを行います。

注意:ターミナルでのテキストの書き出しを終了するにはCtrl + Dキーを押します(Linux)


ここの文書は、ファイルの内容をコマンドラインやスクリプトにインライン展開するのに使うことができます:

cat <<END >file
Hello, World.
END

<<リダイレクト記号の後のトークンは、この文書の終わりを示すために、 << (先頭または末尾に空白を入れずに)単独で出現する必要のある任意の文字列です。シェルがコマンド置換と変数補間を実行しないように引用符を追加することができます。

cat <<'fnord'
Nothing in `here` will be $changed
fnord

(引用符なしでは、 hereはコマンドとして実行され、 $changedは変数の値が$changedものに置き換えられます - 未定義の場合は何もchangedません)。

印刷できない文字を表示する

これは、印字不能な文字や非ASCII文字があるかどうかを調べるのに便利です。

あなたがウェブからのコードをコピー&ペーストした場合などには、あなたは次のように引用符を持っていることではなく、標準の"

$ cat -v file.txt
$ cat -vE file.txt # Useful in detecting trailing spaces.

例えば

$ echo '”     ' | cat -vE # echo | will be replaced by actual file.
M-bM-^@M-^]     $

また、 cat -vETと同等のcat -A (All for A)を使用することもcat -vETます。 TAB文字( ^I表示)、印刷できない文字、各行の終わりを表示します:

$ echo '” `' | cat -A
M-bM-^@M-^]^I`$

gzippedファイルを連結する

gzip圧縮されたファイルは、直接大きなgzip形式のファイルに連結することができます。

cat file1.gz file2.gz file3.gz > combined.gz

これはgzipプロパティで、入力ファイルを連結して結果をgzipするよりも効率的ではありません:

cat file1 file2 file3 | gzip > combined.gz

完全なデモンストレーション:

echo 'Hello world!' > hello.txt
echo 'Howdy world!' > howdy.txt
gzip hello.txt 
gzip howdy.txt

cat hello.txt.gz howdy.txt.gz > greetings.txt.gz

gunzip greetings.txt.gz

cat greetings.txt

その結果、

Hello world!
Howdy world!

greetings.txt.gz単一のファイルであり、 単一のファイル greeting.txtとして解凍されることに注意してください。これをtar -czf hello.txt howdy.txt > greetings.tar.gztar -czf hello.txt howdy.txt > greetings.tar.gz 。これはファイルをtarball内で別々に保ちます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow