最近少しLinuxコマンドを打つことがあるので、よく使うコマンドcatについて勉強したいと思います。
catコマンドとは
catコマンドはファイルを連結したり表示したりする時に使われます。
「cat」は英語の「concatenate」の略で「つなぐ、連結する」という意味があります。
UNIXの標準コマンドでもあるのでMacユーザの方はよく使っているかもしれません。
$ cat file
catコマンドの一番シンプルな使われ方です。
$ cat file
上記コマンドで「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-nonprinting | TAB、改行、改ページを除く非表示の文字を可視化する。 |
-T または –show-tabs | TABを”^|”に変換し表示する。 |
–E または –show-ends | 行の最後に”$”をつけて表示する。 |
-A または –show-all | 全ての非表示の文字を可視化する。 |
-e | TABを除く全ての非表示の文字を可視化する。 |
オプションつけて保存するとどうなるのか実験
「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が連結しなおかつ行番号が振られていました。
おわり
いろいろ実験してみるとおもしろいですね。