ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11 Information Library (日本語) |
- テキストファイル形式の変更
newform [-s] [-itabspec] [-otabspec] [-bn] [-en] [-pn] [-an] [-f] [-cchar] [-ln] [filename]...
newform は filename 引数で指定されたファイルから行を読み取り、形式を変更して標準出力に書き込みます。ファイル名の指定が省略された場合には、標準入力から読み取ります。形式の変更は、コマンド行オプションの指定に従って行います。
-s オプションを除き、コマンド行オプションは任意の順序で指定でき、また繰り返して指定することもできます。オプションとオプションの間の任意の位置にファイル名を記述することも可能です。コマンド行オプションは、指定された順序で処理されます。つまり、``-e15 -l60'' という指定と ``-l60 -e15'' という指定とでは、得られる結果は異なります。複数のファイル名が指定された場合、オプションはそのすべてに適用されます。
次のオプションがサポートされています。
各行において、先頭から最初のタブまでの文字を切り捨て、切り捨てた部分の先頭から最大 8 文字を各行の終わりに付加します。この切り捨てた部分 (最初のタブ文字は含まない) の長さが 8 文字を超える場合には、 8 文字目は * で表され、以降の文字はすべて捨てられます。最初のタブは常に捨てられます。
タブを含んでいない行を持つファイルに対して このオプションを指定すると、 エラーメッセージが出力されプログラムは終了します。切り捨てられた部分の文字は、 その行に対して有効なほかのオプションがすべて処理されるまで 内部的に保持されます。その後、行の最後尾にその部分が付加されます。
例として、先頭に数値、次に複数のタブ、さらにその後にテキストが書かれている行からなるファイルが存在していると仮定します。このファイルを変換して、2 番目以降のタブをスペースに置き換えたものから始まり、その後にテキスト部分を置き、短ければ 72 カラムまでスペースを詰め (または長い場合には 72 カラムまでで切り捨て)、先頭にあった数値を 73 カラムから置く、という形式にする場合には、次のように指定します。
newform -s -i -l -a -e filename
入力タブ指定。入力行に含まれるタブのそれぞれを、tabspec 引数の指定に従って展開します。tabspec の値としては、tabs(1) で説明されているすべての形式が指定できます。また – という値も指定可能で、この場合 newform は、標準入力から読み取るデータの先頭行にタブの処理方法が記述されていると見なします (fspec(4) を参照)。tabspec 引数を省略すると、デフォルト値の –8 が用いられます。tabspec の値が –0 のとき、タブは存在しないことを意味します。このときタブが検出されると、–1 が指定されていたものとして処理されます。
出力タブ指定。tabspec 引数の指定に従って、スペースをタブに置き換えます。tabspec に指定できる値は、前述の -itabspec オプションと同じです。tabspec 引数を省略すると、デフォルト値の –8 が用いられます。tabspec の値が –0 のとき、スペースはタブに変換されずにそのまま出力されます。
行の長さが有効な長さ (–ln オプションの説明を参照) を超えている場合、先頭から n 文字分を破棄します。デフォルトとして行の長さが有効な長さと等しくなるように、必要な数の文字を切り捨てます (デフォルト値は、n なしで -b オプションを指定した場合に使用される)。このオプションの便利な使い方として、COBOL プログラムの各行の行番号を削除する例を次に示します。
newform -l1 -b7 filename
-bn が先頭部分を破棄するのに対し、この en は終端部分を破棄します。それ以外は bn と同じです。
行の長さが有効な長さに満たないとき、行の先頭に付加する文字の数を指定します (文字の種類は -cchar オプションの説明を参照)。n なしで p オプションを指定すると、デフォルトとして行の長さが有効な長さと等しくなるように必要な数の文字を付加します。
-pn が先頭部分に文字を付加するのに対し、この an は終端部分に文字を付加します。それ以外は pn と同じです。
最初の出力行として、タブ指定形式を表す行を出力します。その内容は -o オプションの指定に対応しており、o が複数個指定されていれば最後のものに対応しています。-o が 1 つも指定されていなければ、デフォルトのタブ形式の –8 が出力されます。
pn や an オプションで付加する文字として、char が示す文字を使用します。char のデフォルト値はスペースです。
行の有効な長さを n 文字とします。n なしで -l オプションを指定すると、デフォルトとして 72 が用いられます。-l そのものを省略すると、デフォルトとして 80 文字が有効な長さとなります。なお、個々の タブ文字およびバックスペース文字は、それぞれ 1 文字と数えられます。ただし -i オプションを使って、タブをいくつかのスペース文字に展開することも可能です。
-b オプションを有効に使用するために、行の有効な長さをファイル中のどの行の長さよりも短い値に設定する場合、–l1 と指定してください。
次のオペランドがサポートされています。
入力ファイル名
次の終了値が返されます。
正常終了。
エラーが発生しました。
属性についての詳細は、attributes(5) を参照してください。
|
csplit(1), tabs(1), fspec(4), attributes(5)
いずれの診断メッセージも致命的なエラーを表します。
newform コマンド行に不正なオプションが指定されている
タブが含まれていない行を検出した
ファイルがオープンできない
内部作業バッファー中で行を展開したら、長さが 512 文字を超えた
タブ指定の形式が誤り。またはタブ位置の記述が昇順になっていない
ファイル (または標準入力) から読み取られた tabspec に、ほかのファイル (または標準入力) を参照する tabspec が含まれていた
通常 newform は、物理的な文字だけを認識します。ただし -i および -o に関しては、各行を適切な論理カラム位置に合わせて出力するために、バックスペース文字も認識します。
-i– または -o– により tabspec を標準入力から読み取るように指定した場合でも、newform はユーザーに対してプロンプトを表示しません。
-f オプションが指定され、最後の -o オプションが -o– と記述されていて、その前に -o– または -i– という指定が記述されている場合、タブ指定形式を示す出力行の内容は不正確になります。