サーチ…
構文
- 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
非常に頻繁に、インタラクティブな使用のために、よりless
もmore
ような対話的なページャを使用する方が良いでしょう。 ( 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
ですが、表現はやや面倒です。一般的な置き換えにはxxd
とhexdump
ます。
$ 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.gz
とtar -czf hello.txt howdy.txt > greetings.tar.gz
。これはファイルをtarball内で別々に保ちます。