Linux, コマンド · 1 min read · Sep 18, 2025

Linux unexpand コマンドの初心者向け解説 (例付き)

Linux コマンドラインで作業するには、いくつかの反復作業を迅速に実行する方法を学ぶ必要があります。そのような作業の一つは、空白をタブに変換すること、またはその逆です。このチュートリアルでは、そのような状況で非常に役立つコマンドラインユーティリティ - unexpand - について説明します。

しかし、始める前に、この記事のすべての例は Ubuntu 16.04 LTS マシンでテストされていることを言及しておく価値があります。

Linux unexpand コマンド

unexpand コマンドは、スペースをタブに変換することができます。以下がその構文です:

unexpand [OPTION]... [FILE]...

そして、man ページでは次のように説明されています:

各 FILE の空白をタブに変換し、標準出力に書き込みます。FILE が指定されていない場合、または FILE が - の場合は、標準入力を読み取ります。

以下は、unexpand コマンドがどのように機能するかをよく理解できる Q&A スタイルの例です。

Q1. unexpand コマンドの使い方は?

タブを含むテキストファイルがあるとします。何らかの理由で、expand コマンドを使用してそのタブをスペースに変換し、再度スペースをタブに変換したい場合、この場合は unexpand コマンドを使用できます。

例えば:

unexpand file1

ツールは、stdout に変換された出力を生成します。したがって、それを保存するには、別のファイルにリダイレクトできます。例えば:

unexpand file1 > file2

デフォルトでは、このツールは初期の空白のみに作用することに注意してください。-a オプションを使用して、すべてのスペース/空白をタブに変換したいことをユーティリティに伝えることができます。

Q2. unexpand を強制的に初期/先頭の空白のみを変換させるには?

このツールには、初期の空白またはスペースのみを変換するように強制するオプションがあります(-a オプションが存在していても)。そのオプションは –first-only です。

unexpand --first-only -a file1 > file2

Q3. -t オプションは何をするのか?

さて、-t オプションには複数の役割があります。単一の数字またはカンマ区切りの数字のリストを受け入れます。単一の数字(例えば ‘n’)を渡すと、unexpand コマンドはファイル内のスペースを ‘n’ 位置ごとにタブに圧縮します。

例えば、ツールが空白を 3 位置ごとにタブに圧縮するようにするには、次のようにこのオプションを使用します:

unexpand -t 3 file1 > file2

一方、このオプションにカンマ区切りの数字のリストが与えられると、ツールはその特定の位置にタブストップを配置します。

unexpand -t 1,2,3 file1 > file2

Q4. unexpand に STDIN から入力を読み取らせるには?

これは非常に簡単です - 入力としてファイル名を指定せずにコマンドを実行します(ctrl+D を使用してユーティリティに終了したことを伝えます)。

私が言っているのはこれです:

unexpand

結論

あなたが行う作業の種類によって、unexpand コマンドは非常に役立つかもしれません。このチュートリアルでは、このツールが提供するコマンドラインオプションの大部分について説明しました。詳細を知りたい場合は、その man ページにアクセスしてください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。