[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
unexpand
: スペースをタブに変換するunexpand
は、指定された各 file の内容を標準出力に書き出し、
その際に各行の先頭にある複数の空白 (blank) を、必要な数のタブ文字に変換する。
file が指定されていない場合や、file として ‘-’ が指定されている場合は、
標準入力を対象にする。デフォルトの POSIX ロケールでは、空白 (blank)
とは、スペースかタブのことである。
他のロケールでは、ほかの空白文字が追加されているかもしれない。
書式:
unexpand [option]… [file]… |
デフォルトでは、unexpand
が変換するのは、各行の行頭にある複数の空白だけである
(言い換えれば、空白以外のどんな文字よりも前にある複数の空白だけ)。
バックスペース文字は、出力にそのまま残しておく。バックスペースには、
タブ幅を計算する際に、桁数を減らす働きがあるのだ。
デフォルトでは、タブ位置は 8 桁ごとに置かれる。
このプログラムでは以下のオプションが使用できる。参照: 共通オプション.
タブ位置 (tab stop) が一つだけ指定された場合には、 (訳注: 入力行における) タブ位置をデフォルトの 8 桁ごとではなく、tab1 桁ごとに設定する。 それ以外の場合は、タブ位置を tab1, tab2, … 桁目に置き (行頭を 0 桁目として数える)、指定された最後のタブ位置より後ろにある空白は、 変換せず、そのままにする。タブ位置の指定は、コンマで区切ってもよく、空白で区切ってもよい。 このオプションを指定すると、‘-a’ オプションが自動的に設定される。
(訳注: 一例を挙げておく。たとえば、‘-t 8,12’ なら、入力行は、先頭を
0 桁目として、8 桁目、12 桁目にタブ位置があると見なされる。
そこで、先頭に 12 個のスペースがある行に対して unexpand -t 8,12
を行うと、
空白がタブ 2 個に変換される。出力におけるタブ位置はデフォルトのままなので、
出力ではその行は、 0 から数えて 16 桁目から文字が始まることになる。)
互換性を考慮して、GNU の unexpand
は、
‘-tab1[,tab2]…’ という、このオプションの古い書式も認めている。
そちらを使う場合は、タブ位置を必ずコンマで区切らなければならない。
なお、‘-t’ とは違って、この古いオプションは、‘-a’
を自動的に設定しない。新しいスクリプトでは (訳注: 古い書式と同じ動作をさせたい場合)、
古い書式に代えて、‘--first-only -t tab1[,tab2]…’
を使うべきである。
空白の連続が、行の中で空白以外の文字の後ろにある場合でも、 タブ位置の直前にある 2 個以上の空白の連続は、すべて変換する。
終了ステータス 0 は成功を示し、0 以外の値は失敗を示す。
This document was generated on June 7, 2022 using texi2html 1.82.