ウェブサイト検索

Linux での「cat」および「tac」コマンドの使用方法と例


この記事は Linux のトリックとヒント シリーズの一部です。この記事では、cat コマンド (Linux で最も頻繁に使用されるコマンド) と tac ( cat コマンドの逆 – ファイルを逆の順序で印刷します) と実際の例をいくつか示します。

こちらもお読みください: Linux での 13 の便利な「cat」コマンドの例

Linux での Cat コマンドの基本的な使用法

Cat コマンドは、Concatenate の頭字語で、*nix システムで最もよく使用されるコマンドの 1 つです。このコマンドの最も基本的な使用法は、ファイルを読み取って標準出力に表示することです。これは、ファイルの内容を端末に表示することを意味します。

cat file.txt

cat コマンドのもう 1 つの使用法は、以下の例に示すように、複数のファイルを読み取るか結合して、出力をモニターに送信することです。

cat file1.txt file2.txt file3.txt

このコマンドは、”> ” Linux リダイレクト演算子を使用して、複数のファイルを 1 つのファイルに連結 (結合) することもできます。

cat file1.txt file2.txt file3.txt > file-all.txt

追加リダイレクタを使用すると、次の構文で新しいファイルの内容を file-all.txt の最後に追加できます。

cat file4.txt >> file-all.txt

cat コマンドを使用すると、ファイルの内容を新しいファイルにコピーできます。新しいファイルの名前は任意に変更できます。たとえば、ファイルを現在の場所から /tmp/ ディレクトリにコピーします。

cat file1.txt > /tmp/file1.txt 

ファイルを現在の場所から /tmp/ ディレクトリにコピーし、名前を変更します。

cat file1.txt > /tmp/newfile.cfg

cat コマンドのあまり使用方法としては、次の構文で新しいファイルを作成する方法があります。ファイルの編集が終了したら、CTRL+D を押して新しいファイルを保存し、終了します。

cat > new_file.txt

空行を含むファイルのすべての出力行に番号を付けるには、-n スイッチを使用します。

cat -n file-all.txt

空ではない各行の番号のみを表示するには、-b スイッチを使用します。

cat -b file-all.txt

Linux の cat コマンドについて詳しく知りたいですか?次に、Linux での 13 の便利な「cat」コマンドの例に関する記事をお読みください。

Linux で Tac コマンドを使用する方法を学ぶ

一方、*nix システムであまり知られておらず、あまり使用されていないコマンドは tac コマンドです。 Tac は実質的に cat コマンドの逆バージョン (スペルも逆) で、ファイルの各行をマシンの標準に合わせて最下行から先頭行で出力します。出力。

tac file-all.txt

このコマンドの最も重要なオプションの 1 つは -s スイッチで表され、ファイルの文字列またはキーワードに基づいてファイルの内容を分離します。

tac file-all.txt --separator "two"

次に、tac コマンドの最も重要な使用法は、ログ ファイルをデバッグするために、ログ内容の時系列順序を逆にするのに非常に役立つことです。

tac /var/log/auth.log

Or to display the last lines

tail /var/log/auth.log | tac
サンプル出力
tecmint@tecmint ~ $ tac /var/log/auth.log
pr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr  6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...

cat コマンドと同様に、tac はテキスト ファイルの操作に優れた機能を果たしますが、他のタイプのファイル、特にバイナリ ファイルや最初の行が次のようなファイルでは使用しないでください。はそれを実行するプログラムを示します。