cat -sオプションの使い方|連続する空行を1行に圧縮して見やすくする方法
生徒
「先生、テキストファイルを見てると、空行がいっぱい続いてて見づらいことがあるんです…」
先生
「それならcat -sオプションを使うといいですよ。連続する空行を1行にまとめて表示できます。」
生徒
「そんな便利なオプションがあるんですね!使い方を教えてください!」
先生
「では、一緒にcat -sの使い方を詳しく学んでいきましょう!」
1. cat -sとは?
Linuxのcatコマンドは、テキストファイルの中身を画面に表示するためのコマンドです。よく使われる基本的なコマンドのひとつですね。
cat -sは、その中でも「連続した空行を1行に圧縮する」という特殊なオプションです。
例えば、テキストファイルに3行も4行も空行(何も書いていない行)が続いていた場合、それを1行だけにまとめてくれる機能です。
空行が多いファイルを読みやすく整えるのに便利なオプションです。
2. 空行とは?初心者向けにやさしく解説
空行(くうぎょう)とは、中身が何も書かれていない行のことです。見た目には何もないように見えますが、実際には改行だけが存在している行です。
プログラミングや文章作成では、読みやすさのために空行を入れることがありますが、たくさん連続すると逆に見づらくなることもあります。
3. cat -sの基本的な使い方
まずは、空行がたくさんあるファイルを作ってみましょう。
echo -e "1行目\n\n\n\n2行目\n\n3行目" > sample.txt
このsample.txtの中身は、空行が何行も続いています。これを普通にcatで表示すると、空行がそのまま出てきます。
cat sample.txt
1行目
2行目
3行目
ここで-sオプションを使って表示すると、空行が1行だけに圧縮されます。
cat -s sample.txt
1行目
2行目
3行目
これで、見た目がスッキリして読みやすくなりましたね。
4. cat -sで元のファイルは変わらない
cat -sは表示のときにだけ空行を圧縮するだけで、ファイル自体の内容は変わりません。つまり、元のsample.txtには連続した空行が残ったままです。
元のファイルを変更したい場合は、出力を新しいファイルに保存する必要があります。
cat -s sample.txt > cleaned.txt
こうすれば、空行が1行に圧縮された状態でcleaned.txtに保存されます。
5. cat -sは複数ファイルにも使える
cat -sは、複数のファイルにも対応しています。たとえば、a.txtとb.txtの2つのファイルに空行が多く含まれていて、それをまとめて表示したいときはこうします。
cat -s a.txt b.txt
ファイルをつなげて表示しながら、連続する空行を1行にしてくれるので、複数ファイルの確認にも便利です。
6. cat -sと他のcatオプションとの組み合わせ例
catには他にも便利なオプションがいくつかあります。-sと一緒に使うことで、より見やすく整理された出力ができます。
cat -n -s
-nは、すべての行に行番号をつけるオプションでした。-sと一緒に使うと、空行をまとめながら行番号も表示されます。
cat -n -s sample.txt
1 1行目
2
3 2行目
4
5 3行目
このように、無駄な空行を抑えながら読みやすい出力ができるので、とても便利です。
7. cat -sとsedコマンドの違い
空行の処理にはsedというコマンドもよく使われます。たとえば、sed '/^$/N;/^\n$/D'のような複雑な書き方をすれば、同じように空行を1行にできます。
でも初心者には難解なので、まずはcat -sで空行を圧縮する方法から覚えるのがおすすめです。
8. 空行が多いログファイルにもおすすめ
Linuxのサーバーやシステムのログファイルには、空行がたくさん含まれていることがあります。cat -sを使えば、無駄な空白を省いて情報をすばやく把握できるので、ログ確認にも役立ちます。