catコマンドとは? 超初心者のLinuxコマンドの勉強

最近少しLinuxコマンドを打つことがあるので、よく使うコマンドcatについて勉強したいと思います。

catコマンドとは

catコマンドはファイルを連結したり表示したりする時に使われます。
「cat」は英語の「concatenate」の略で「つなぐ、連結する」という意味があります。
UNIXの標準コマンドでもあるのでMacユーザの方はよく使っているかもしれません。

$ cat file

catコマンドの一番シンプルな使われ方です。

$ cat file

上記コマンドで「file」の中身を開くことができます。
編集はできないため、中身を確認するときに使われます。(うっかり編集してしまうことがないので安心)

cat file コマンド

上記はMacで実施したので正確にはUNIXですが動作は同じです。cat.txtファイルをコマンド側で表示しています。テキストエディタで開いた時と中身が同じなことがわかります。

cat file1 file2...

concatenateの意味である連結をこのコマンドで実行することができます。

cat file1 file2

上記はfile2までですが、3つ以上も可能です。

上記画像では「cat cat.txt cat2.txt」を実行すると、cat.txtとcat2.txtが連結されて表示されているのが確認できます。こちらのコマンドでは保存はされません。

cat file1 > file2

こちらは保存です。複製に近いです。

cat file1 > file2

file1の内容がfile2に保存されます。(file2の内容は消えます。)
ディレクトリ内にfile2というファイルが存在しない場合、file2が作成されます。

ちなみに「>」の向き逆にしたら逆の動きするのかなと思って実験しましたが、そんなことはなく。

cat file1 >> file2

以下コマンドは連結した内容を保存します。

cat file1 >> file2

「file2」の末尾に「file1」の内容を連結し保存されます。(file1には変化はありません)

ちなみに「cat file1 >> file2 >> file3」のようにして実験してみましたが、file1の内容がfile3に追加されていました。

catのオプション

初心者的には使うことなさそうですが、オプションもついでに勉強します。

-n または --number行番号を付けて表示する。(numberのn)
-b または--number-nonblank空白行を除いて行番号を付けて表示する。(blankのb)
-s または --squeeze-blank空白行が3行など続く場合は1行にして表示する。(squeezeのs)
-v または --show-nonprintingTAB、改行、改ページを除く非表示の文字を可視化する。
-T または --show-tabsTABを"^|"に変換し表示する。
-E または --show-ends行の最後に"$"をつけて表示する。
-A または --show-all全ての非表示の文字を可視化する。
-eTABを除く全ての非表示の文字を可視化する。

オプションつけて保存するとどうなるのか実験

「cat -n file」とすれば行数をつけて表示してくれるのは理解できたが、cat -n file1 >> file2などで保存したらどうなるんだろうと思ったので実験。

以下コマンドを実行してみます。

cat -n cat.txt >> cat2.txt

■ cat.txtの内容

*
catコマンドテスト
*

■ cat2.txtの内容

*
cat2 コマンドテスト
*

■実行結果

*
cat2 コマンドテスト
*
1 *
2 catコマンドテスト
3 *

おー行番号ついてる。

ちなみに、cat -n cat.txt >> -n cat2.txt として実行したら -nというデータが作成されcat.txtとcat2.txtが連結しなおかつ行番号が振られていました。

おわり

いろいろ実験してみるとおもしろいですね。

Linux

Posted by Nakamoto