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を使えば、無駄な空白を省いて情報をすばやく把握できるので、ログ確認にも役立ちます。
まとめ
今回の記事では、Linux環境でテキストファイルを効率的に閲覧するための必須テクニック、cat -sオプションについて詳しく解説しました。大量のデータを扱うエンジニアや、設定ファイルの内容を確認するシステム管理者にとって、画面の視認性を高めることは作業ミスを減らすための第一歩です。
cat -s オプションの重要なポイント
Linuxコマンドの基本であるcatに-s(squeeze-blank)を付け加えるだけで、連続して出現する無意味な空行を「たった1行」に凝縮することができます。これにより、スクロールの手間が省け、重要なテキスト情報だけに集中できるようになります。ここで、改めてその効果をコマンド実行例で振り返ってみましょう。
実践:空行が目立つファイルをスッキリさせる
例えば、プログラムの実行ログや、雑に作成されたメモファイルなど、空行が5行も10行も続いているケースを想定します。まずは、わざと空行を多く含ませたテキストファイルを作成して中身を確認する手順です。
echo -e "Linux勉強中\n\n\n\n\n次のステップへ" > practice.txt
cat practice.txt
Linux勉強中
次のステップへ
上記の通り、標準の表示では空行がそのまま出力されます。これに対して、今回学んだcat -sを実行すると、どれほど見た目が変わるか確認してください。
cat -s practice.txt
Linux勉強中
次のステップへ
非常にスマートな表示になりましたね。このように、「表示上の無駄を削ぎ落とす」のがこのオプションの真髄です。
応用:他コマンドとの組み合わせによるSEO・データ整理術
実際の業務では、単に画面に出すだけでなく、整理した内容を別のファイルとして保存したり、行番号を振って分析したりすることが多いです。特にプログラミングのソースコードをレビューする際などは、行番号を表示する-nオプションとの併用が非常に効果的です。
cat -ns practice.txt
1 Linux勉強中
2
3 次のステップへ
行番号を維持しつつ、無駄な空白行(元のファイルでは2行目から5行目にあたった部分)を1つの空行としてカウントし直して表示してくれます。これにより、ドキュメントの構造がより明確になります。
さらに、ルート権限が必要なシステムログ(例えば/var/log/配下のファイルなど)を確認する際も、このテクニックは重宝します。管理者として実行する場合の例も見ておきましょう。
cat -s /var/log/syslog
(ログの内容が連続空行を圧縮された状態で表示される)
最後に:作業効率を上げるための習慣
「たかが空行」と思われがちですが、1,000行、10,000行と続く巨大なファイルを扱う際、この-sオプションを知っているかどうかで、情報にたどり着くまでのスピードが劇的に変わります。初心者の方は、まずは「catで中身を見るときは、空行が多ければ-sを付ける」という習慣を身につけるところから始めてみてください。Linuxの世界には、こうした「ちょっとした工夫」で劇的に便利になるツールがたくさん眠っています。
生徒
先生、ありがとうございました!cat -sを使うだけで、あんなにバラバラだったテキストが読みやすくなるなんて驚きです。今まで必死にスクロールして空行を飛ばしていた時間がもったいなかったです…。
先生
そう言ってもらえると嬉しいですね。特にエンジニアの世界では「可読性」といって、読みやすさは正義なんです。空行を適切に処理するだけで、バグの発見が早まることもあるんですよ。
生徒
なるほど、バグ発見にも役立つんですね!あ、一つ気になったのですが、もし空行を完全に消してしまいたいときはどうすればいいんですか?-sは1行残しちゃいますよね?
先生
鋭い質問ですね!もし空行をすべて削除したいなら、grepコマンドを使って「空行以外を表示する」というテクニックを使います。例えばこんな感じですね。
grep -v '^$' practice.txt
Linux勉強中
次のステップへ
生徒
わあ、今度は1行も残らず消えました!用途に合わせてcat -sと使い分ければ完璧ですね。Linuxコマンドって、組み合わせ次第で何でもできる感じがしてワクワクします!
先生
そのワクワクが大切です。まずは基本のcatをマスターして、徐々に他のコマンドも覚えていきましょう。次はファイルの中身を検索するコマンドに挑戦してみますか?
生徒
はい!ぜひお願いします!どんどん使いこなせるようになりたいです!