記事最終更新日:2017年08月20日

記事投稿日:2016年11月27日

閲覧数:3499 views

catコマンドの使い方メモ -【Unix&Linux&Mac】

はじめに

今回のD.M.C.【デベメモドットコム】の記事は「catコマンドの使い方」ということで、LinuxやMacなどUnix系列のOSで使用されるcatコマンドについて、使い方や各種オプションなどの組み合わせを詳しくメモ(解説)していきます。

はじめに「catコマンド」で何ができるのかというと、ファイルの中身を確認する為のコマンドです。

基本的な使い方

基本的なオプション無しの使い方は下記コードのようになっています。

$ cat index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>catコマンドのページです。</title>
</head>
<body>
<h1>D.M.C.へようこそ!</h1>
<p>catコマンドを色々使ってみよう!</p>


</body>
</html>

これは「cat」コマンドにファイル名を指定する事によって、ファイルの中身を出力します。

今回はindex.htmlファイルを出力させています。

基本はこれだけですので、すごく簡単でわかりやすいと思います。

「リダイレクト」との組み合わせ

リダイレクトと組み合わせる事によって、別ファイルへ出力する事もできます。

リダイレクトについては、過去に詳しく記事を書いているのでよければこちらの記事を参照してみてください。

下記ではcatコマンドとリダイレクトを組み合わせる事によってindex.htmlファイルの中身の出力をcopy.htmlへ出力させてファイルに書き込んでいます。

$ cat index.html > copy.html

もちろんcopy.htmlの内容は先ほどindex.htmlを出力させた時と全く同じ内容になります。

$ cat copy.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>catコマンドのページです。</title>
</head>
<body>
<h1>D.M.C.へようこそ!</h1>
<p>catコマンドを色々使ってみよう!</p>


</body>
</html>

「-n」オプションで行番号を表示

「-n」オプションをつけて実行する事で出力の際に行番号をつけて表示させる事ができます。

結果は下記コードになっています。

$ cat -n index.html
1 <!DOCTYPE html>
2 <html lang="ja">
3 <head>
4 <meta charset="UTF-8">
5 <title>catコマンドのページです。</title>
6 </head>
7 <body>
8 <h1>D.M.C.へようこそ!</h1>
9 <p>catコマンドを色々使ってみよう!</p>
10
11
12 </body>
13 </html>

「-b」オプションで行番号を表示させ空白行は無視

「-b」オプションは「-n」オプションとほとんと同じですが、「-b」オプションは空白行に関しては無視して行番号を表示させる事が出来ます。

-bオプションをつけたコマンドが下記コードになっています。

$ cp -b index.html
1 <!DOCTYPE html>
2 <html lang="ja">
3 <head>
4 <meta charset="UTF-8">
5 <title>catコマンドのページです。</title>
6 </head>
7 <body>
8 <h1>D.M.C.へようこそ!</h1>
9 <p>catコマンドを色々使ってみよう!</p>


10 </body>
11 </html>

「-s」オプションで連続した空白行を1行にまとめて出力

「-s」オプションをつけて実行する事で連続した空白行を1行にまとめて出力させる事ができます。

まずは「-n」オプションで行番号を表示させ、空白行の確認をしてみます。

下記がコードになっています。

$ cat -n index.html
1 <!DOCTYPE html>
2 <html lang="ja">
3 <head>
4 <meta charset="UTF-8">
5 <title>catコマンドのページです。</title>
6 </head>
7 <body>
8 <h1>D.M.C.へようこそ!</h1>
9 <p>catコマンドを色々使ってみよう!</p>
10
11
12 </body>
13 </html>

ご覧の通り、10行目と11行目に連続した空白行があります。

そして下記が「-s」オプションをつけて実行した結果になります。

$ cat -s index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>catコマンドのページです。</title>
</head>
<body>
<h1>D.M.C.へようこそ!</h1>
<p>catコマンドを色々使ってみよう!</p>

</body>
</html>

先ほどあった連続した空白行は1行にまとめられている事がわかると思います。

行数が表示されていないので、わかりづらいかもしれません、そういう場合は「-n」オプションと「-s」オプションを組み合わせて表示させる事によってわかりやすくなります。

下記が組み合わせた実行結果になっています。

$ cat -ns index.html
1 <!DOCTYPE html>
2 <html lang="ja">
3 <head>
4 <meta charset="UTF-8">
5 <title>catコマンドのページです。</title>
6 </head>
7 <body>
8 <h1>D.M.C.へようこそ!</h1>
9 <p>catコマンドを色々使ってみよう!</p>
10
11 </body>
12 </html>

「-T」オプションでタブを^Iで表示

「-T」オプションでタブを^Iで表示させる事ができます。

正直、このオプションは一体何に使うのか…笑

また使い道がわかり次第、この記事に追記したいと思います。

まずはタブがあるファイルをオプション無しで実行したコードが下記になっています。

$ cat index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>catコマンドのページです。</title>
</head>
<body>
<h1>D.M.C.へようこそ!</h1>
<p>catコマンドを色々使ってみよう!</p>


</body>
</html>

そして「-T」オプションをつけたコードが下記になっています。

$ cat -T index.html
<!DOCTYPE html>
<html lang="ja">
<head>
^I<meta charset="UTF-8">
^I<title>catコマンドのページです。</title>
</head>
<body>
<h1>D.M.C.へようこそ!</h1>
<p>catコマンドを色々使ってみよう!</p>


</body>
</html>

「-E」オプションで行末に$表示

「-E」オプションで行末に$を表示させる事ができます。

こちらも正直、「-T」オプション同様一体何に使うのか…笑

この使い道もわかり次第、追記したいと思います。笑

とりあえず「-E」オプションをつけて実行したコードが下記になっています…

$ cat -E index.html
<!DOCTYPE html>$
<html lang="ja">$
<head>$
^I<meta charset="UTF-8">$
^I<title>catコマンドのページです。</title>$
</head>$
<body>$
<h1>D.M.C.へようこそ!</h1>$
<p>catコマンドを色々使ってみよう!</p>$
$
$
</body>$
</html>$

ファイルの連結

catコマンドは引数にファイルを複数指定する事によって、ファイル内容を連結して出力させる事ができます。

下記が実行結果になっています。

$ cat index.html copy.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>catコマンドのページです。</title>
</head>
<body>
<h1>D.M.C.へようこそ!</h1>
<p>catコマンドを色々使ってみよう!</p>


</body>
</html>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>catコマンドのページです。</title>
</head>
<body>
<h1>D.M.C.へようこそ!</h1>
<p>catコマンドを色々使ってみよう!</p>


</body>
</html>

上記はcatとリダイレクトの組み合わせと時に出力先をcopy.htmlにする事によって同じ内容のファイルを作成した時のindex.htmlとcopy.htmlファイルを連結して出力させています。

catコマンドオプション一覧

catコマンドオプションまとめ一覧

-n 行番号をつけて出力
-b 行番号を表示させ空白行は無視
-s 連続した空白行を1行にまとめて出力
-T タブを^Iで表示
-E 行末に$表示

感想

「catコマンド」はちょっとファイルの中身を確認したいときなんかは凄く使いやすく便利だと思います。この「cat」コマンドですが、BSDとviを開発した生きる伝説ビル・ジョイ(美流上位)はこの「cat」コマンドをエディタとして使いプログラムを書いていたという逸話があるらしいです。一文字も間違えず…笑

今回紹介したコマンド以外にも色々と当サイト(D.M.C.)でこれから紹介していけたらと思います。

About / ブログについて

D.M.C. / デベメモドットコム

D.M.C.【デベメモドットコム】はWEB制作に関することを中心に、 その他、関連する事まで出来るだけわかりやすく備忘録としてメモを残していくブログです。
このブログを通して少しでも為になる情報を発信して皆さんと共有できればとても嬉しいです。

ページトップへ

Categories

Tags