このマニュアルは不完全です.初心者に適した方法で,基本的な概念を説明しよ うとしていません.それゆえ,興味があればこのマニュアルの改善に係わってく ださい.GNUコミュニティ全体が利益を得るでしょう.
GNUテキストユーティリティーは,ほとんどPOSIX.2標準と互換性がありま す.
バグをbug-textutils@gnu.orgに報告してください.バージョンナン バー,マシンアーキテクチャ,入力ファイルと,バグの再現に必要なあらゆる情 報含めることを忘れないでください.入力と,期待したものと,得たものと,間 違っている理由です.diffは歓迎しますが,これは推測が難しいときもあるので, 問題の記述も含めてください.See Bugs.
このマニュアルは配布物のUNIX man page に基づいていて,それは,元々David
MacKenzieによって書かれ,Jim Meyeringによって更新されました.元となる
fmt
man pageは,Ross Patersonによって書かれました.François
Pinardは,Texinfoフォーマットへの最初の変換を行いました.Karl Berryは索
引の追加と,いくつかの再編成と,結果の編集を行いました.Richard Stallman
は,全体的なプロセスに,彼のいつもの貴重な洞察を寄稿しました.
特定のオプションは,これらすべてのプログラムで利用可能です.それぞれのプ ログラムのために,同一の記述を書くのではなく,それらはここで記述されます. (実際,すべてのGNUプログラムが,これらのオプションを受け入れる(あるいは 受け入れるべき)です.)
これらのプログラムには,任意の文字列を引数として持つものもあります.その
場合,--help
と--version
は,1つあり,正確に1つのコマンドラ
イン引数の場合のみ,オプションとして受け入れられます.
--help
--version
これらのコマンドは,いくつかの方法で,できる限りファイルを変換しながら, ファイル全体を読み込み,そして書き出します.
cat
: ファイルを連結し書き込むcat
は,それぞれのfile(-
は標準入力を意味します)か,与
えられない場合は標準入力を,標準出力へコピーします.概要です.
cat [option] [file]...
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-A
--show-all
-vET
と同じです.
-B
--binary
cat
は,標準出力がファイルやパイプに
リダイレクトされているときのみ,バイナリモードを使用します.このオプショ
ンは優先されます.バイナリファイルのI/Oでは,cat
はファイルのコピー
プログラムとして使用されることが多いので,それらの書式(DOSテキストとバイ
ナリに対するUnixテキスト)を保つために使われます.(以下の)オプションには,
ときとして元ファイルの内容が重要でないので,cat
にテキストモードで
読み書きさせるものもあります(例えば,行がcat
で番号付けされるとき
や行の終りに印を付けるとき).これは,これらのオプションがDOS/Windowsユー
ザーが期待したように働くためのものです.例えば,DOS形式のテキストファイ
ルは,テキストモードで読まれない場合,-b
で空の行として扱われない,
CR-LF というペアの文字を行末に持ちます.
-b
--number-nonblank
cat
はテキストモードでファイルを読み書きしま
す.
-e
-vE
と同じです.
-E
--show-ends
$
を表示します.MS-DOSとMS-Windowsでは,このオ
プションで,cat
はテキストモードでファイルを読み書きします.
-n
--number
cat
はテキストモードでファイルを読み書きします.
-s
--squeeze-blank
cat
はテキストモードでファイルを読み書きし
ます.
-t
-vT
と同じです.
-T
--show-tabs
^I
として表示します.
-u
-v
--show-nonprinting
^
表記法を使って表示し,
M-
を使ったハイビットセットを持っている文字に優先します.MS-DOSと
MS-Windowsでは,このオプションで,cat
はDOSバイナリモードでファイ
ルと標準入力を読むので,それぞれの行末のCR文字は表示されます.
tac
: 逆順にファイルを連結し書き込むtac
は,それぞれのfile(-
は,標準入力を意味します)か,
与えられない場合は標準入力を,それぞれに分けられたレコード(デフォルトは
行)を,逆順に標準出力へコピーします.概要です.
tac [option]... [file]...
レコードは,文字列のインスタンス(デフォルトは改行)で分けられていま す.デフォルトで,このセパレータ文字列はファイルに続くレコードの終りに付 加されます.
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-b
--before
-r
--regex
tac
ユーザは,tac
はファイルをバイナリモードで読むので,テキストファイ
ルのそれぞれの行は,UnixスタイルのLFの代わりにCR/LFのペアで終ることに注
意してください.
-s separator
--separator=separator
nl
: 行に番号を付けファイルに書き込むnl
は,それぞれのfile(-
は標準入力を意味します)か,与
えられない場合は標準入力を,行のいくつか,または全てに行番号を加えて,標
準出力へ書き出します.概要です.
nl [option]... [file]...
nl
は,入力を(論理)ページに分解します.デフォルトで,それぞれの論
理ページのトップで,行番号は1にリセットされます.nl
は,全ての入力
ファイルを単一のドキュメントとして扱います.行番号や論理ページをファイル
間でリセットしません.
論理ページは,3つのセクションから成立ちます.ヘッダとボディとフッタです. あらゆるセクションは,空にすることもできます.それぞれは,異なるスタイル で番号を付けられます.
論理ページのセクションの最初は,以下のデリミタ文字列の1つを,入力ファイ ルに単一行で含めることで示されます.
\:\:\:
\:\:
\:
これらの文字列を構成する2つの文字は,\
と:
からの変更はオプ
ション(以下を参照)で可能ですが,パターンと文字列の長さは変更できません.
セクションデリミタは,出力では空行に置換されます.入力ファイルの,最初の
セクションのデリミタ文字列より前のあらゆるテキストは,ボディセクションの
一部と考えられるので,nl
は,セクションデリミタが無いファイルを,1
つのボディセクションとして扱います.
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-b style
--body-numbering=style
a
t
n
pregexp
-d cd
--section-delimiter=cd
\:
で
す.cのみ与えられた場合,2番目の:
はそのままです.(シェルが
拡張する\
や他のメタ文字を,引用符やバックスラッシュの追加で保護す
ることを,忘れないでください.)
-f style
--footer-numbering=style
--body-numbering
に似ています.
-h style
--header-numbering=style
--body-numbering
に似ています.
-i number
--page-increment=number
-l number
--join-blank-lines=number
-n format
--number-format=format
rn
です).
ln
rn
rz
-p
--no-renumber
-s string
--number-separator=string
-v number
--starting-line-number=number
-w number
--number-width=number
od
: 8進やその他の書式でファイルを書き出すod
は,それぞれのfile(-
は標準入力を意味します)か,与
えられない場合は標準入力の,明瞭な表現を書き込みます.概要です.
od [option]... [file]... od -C [file] [[+]offset [[+]label]]
それぞれの出力行は,入力オフセットと,それに続くファイルデータのグループ
から成り立ちます.デフォルトで,od
は8進数でオフセットを出力し,そ
れぞれのファイルのデータグループは,1つの8進数で出力された,入力の2バイ
トです.
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-A radix
--address-radix=radix
d
o
x
n
デフォルトは8進数です.
-j bytes
--skip-bytes=bytes
0x
や0X
で始まる場合,16進数と解釈されます.そ
れ以外で,0
で始まる場合は8進数.それ以外では10進数です.b
の追加はbytesを512倍し,k
は1024倍,そしてm
は1048576
倍です.
-N bytes
--read-bytes=bytes
bytes
に対する接頭辞と
接尾子は,-j
に対するものと同じように解釈されます.
-s [n]
--strings[=n]
-t type
--format=type
od
は,それぞれの
指定したデータ形式を用いて,それぞれの出力行のコピーを,指定した順番で書
き出します.
あらゆる形式指定の終りに"z"を加えることで,形式指定で生成された出力行 に,印刷可能な文字に存在するASCII文字の表示を加えます.
a
c
d
f
o
u
x
形式a
は,スペースに対しsp
,改行に対しnl
,そして
null(ゼロ)バイトに対しnul
のようなものを出力します.形式c
は,それぞれ
,\n
,そして\0
を出力します.
a
とc
以外の形式に対し,それぞれの数字の解釈に使用するバイト
数を,以下の10進数の整数を伴う形式を示す文字で与えられたデータ形式で指定
することができます.また,以下の文字の1つを伴う以下の形式を示す文字で,C
コンパイラ組込みのデータ形式を指定することもできます.整数(d
,
o
,u
,x
)に対しては以下のようになります.
C
S
I
L
浮動小数点(f
)に対しては以下のようになります.
-v
--output-duplicates
od
は,最初の行のみ出力し,それ以下の行には,省略を示すた
めアスタリスクを置くだけです.
-w[n]
--width[=n]
n
入力バイトをダンプします.それは,出力形式で指定した
ものに関連するサイズの公倍数の倍数にする必要があります.nが偶数の
場合,デフォルトは32です.オプションが全く指定されていない場合,デフォル
トは16です.
次のいくつかのオプションは,古いpre-POSIX書式の指定オプションを,対
応するPOSIX書式のスペックにマップします.GNU od
は,古い形式
と新しい形式のオプションのあらゆる組合せを受け入れます.書式指定オプショ
ンは蓄積されます.
-a
-ta
と同じです.
-b
-toC
と同じです.
-c
-tc
と同じです.
-d
-tu2
と同じです.
-f
-tfF
と同じです.
-h
-tx2
と同じです.
-i
-td2
と同じです.
-l
-td4
と同じです.
-o
-to2
と同じです.
-x
-tx2
と同じです.
-C
--traditional
od
が受け入れる,pre-POSIXのオプション引数が無いものと認
識します.以下の構文です.
od --traditional [file] [[+]offset[.][b] [[+]label[.][b]]]
これは,最大1ファイルと,オプション引数で指定しているオフセットと疑似ス
タートアドレス,labelを指定するために使用されるはずです.デフォル
トで,offsetは,書式化と書き出しの前にスキップする入力バイトの量が,
8進数で指定されていると解釈されます.オプションで10進数の点を後置すると,
offsetの解釈は強制的に10進数とします.10進数が指定されておらず,オ
フセットが0x
や0X
で始まる場合,それは16進数として解釈されま
す.b
の後置がある場合,スキップされるバイト数はoffsetの512
倍になります.label引数は,offsetのように解釈されますが,そ
れは初期の疑似アドレスを指定します.疑似アドレスは,通常のアドレスに続く
カッコ内に表示されます.
これらのコマンドは,ファイルの内容を再書式化します.
fmt
: 段落のテキストを再書式化する.fmt
は,与えられた(最大)文字数(デフォルトは75)の出力行を生成するた
め,行を補充し繋げます.概要です.
fmt [option]... [file]...
fmt
は,指定されたfile引数(または,与えられない場合は標準入
力)からファイルを読み込み,標準出力に書き出します.
デフォルトで,空白行,単語間のスペース,そして字下げは出力で維持されます. 異なる字下げのある連続した入力行は連結されません.タブは入力で展開され, 出力に差し込まれます.
fmt
は,文の終りの改行しようとし,文の最初の単語の後や,文の最後の
単語の前での改行を避けようとします.文の切れ目は段落の終り,または,
あらゆる.?!
で終る単語に,2つのスペースか行の終りが続くものと定義
されていて,あらゆるカッコや引用符の内部は無視されます.TeXのように,
fmt
は,行の分割を選択する前に"段落"全体を読み込みます.アルゴリ
ズムは"Breaking Paragraphs Into Lines(段落を行に区切る)"の変種です
(Donald E. Knuth and Michael F. Plass, Software--Practice and
Experience, 11 (1981), 1119-1184).
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-c
--crown-margin
-t
--tagged-paragraph
-s
--split-only
-u
--uniform-spacing
-width
-w width
--width=width
fmt
は最初に,これより7%短い行にし,行の長さのバランスのための空間を与えよう
とします.
-p prefix
--prefix=prefix
pr
: 印刷のためのファイルのページ化とコラム化pr
は,それぞれのfile (-
は標準入力を意味します),また
は,与えられない場合は標準入力を,複数列の書式で,ページ化された任意の出
力で,標準出力に書き出します.オプションで,全てのfileを結合し,1
列毎に,並列に全てを出力します.概要です.
pr [option]... [file]...
デフォルトで,5行のヘッダがそれぞれのページに出力されます.日付,ファイ
ル名,そしてページ番号がある行があり,後の2行は空白行です.また,5行の空
白行を持つフッタも出力します.-F
オプションで,3行のヘッダを出力し
ます.2行の空白行は削除され,フッタは使用されません.両方の場合でのデフォ
ルトのpage_lengthは,66行です.テキスト行のデフォルト数は56
(-F
が無い場合)から63 (-F
がある場合)まで変化します.ヘッダ
のテキスト行は,yyyy-mm-dd HH:MM string Page nnnn
という形式で,
page_widthまで使用します.文字列は,ヘッダ文字列をセンタリングした
ものになります.
入力でのフォームフィードは,出力で改ページとなります.複数のフォームフィー ドは空のページを生成します.
列は同じ幅で,オプションの文字列(デフォルトはspace
)で分けられてい
ます.複数列の出力では,-J
オプションを使用していない場合,行は常
にpage_width (デフォルトで72)で切り詰められます.単一列での出力は,
デフォルトでは切り詰められません.その場合,行を切り詰めるため-W
オプションを使用してください.
Including version 1.22i:
いくつかの小さなletter options (-s
,-w
)は,より良い
posix遵守のオブジェクトにより再定義されています.それ以外の場合で
のいくつかの出力は,他のunixに適合されました.下位互換性の侵害は受
け入れられました.
いくつかのnew capital letterオプション(-J
,-S
,
-W
)は,小文字のオプションの予期せぬインターフェースを取り消すため,
導入されました.-N
オプションと2番目の引数+FIRST_PAGE
の
last_pageは,より多くの柔軟性を提供します.入力ファイルのフォーム
フィード設定の詳細な取扱は,-T
オプションを要求します.
大文字のオプションは,小文字のものより優勢です.
いくつかのオプション引数(-s
,-S
,-e
,-i
,
-n
と比較して)は,(posix使用で既に述べられた)オプション文字
の前置から分かれている引数として指定できません.
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
+first_page[:last_page]
--pages=first_page[:last_page]
:last_page
が無い場合は,ファイルの終りを暗示します.飛ばさ
れたページ数を見積もる間,入力ファイルのそれぞれのフォームフィードは,結
果として新しいページになります.+first_page
がある場合と無い
場合のページの数え方は同じです.デフォルトで,入力ファイルの最初のページ
でカウントを開始します(最初のページは出力されません).行の番号付けは,
-N
オプションで変更できます.
-column
--columns=column
-a
が使用されない場合は,列を下へ出力します.列の幅は,
columnが増加するに従い,自動的に減少します.page_widthを増加
させるため,-W/-w
を使用していない場合も同様です.このオプションは,
いくつかの行を切り詰めるかも知れません.それぞれのページの列の行の数は平
均されます.オプション-e
と-i
は,複数のテキスト列の出力のた
めのものです.-J
をともに用いた場合,列の整列と行の切り詰めは停止
します.十分な長さの行は,フリーフィールド書式に組み込まれ,-S
オ
プションはフィールドを分けるかも知れません.-column
は
-m
オプションとともに使用できません.
-a
--across
-column
オプションは,1以上のcolumnで与える必要があり
ます.列にフィットさせるには余りに長い場合,それは切り詰められます.
-c
--show-control-chars
^G
)を使用して制御文字を出力します.8進のバッ
クスラッシュ表記で,その他の印刷不可能な文字を表示します.デフォルトで,
印刷不可能な文字は変更されません.
-d
--double-space
-e[in-tabchar[in-tabwidth]]
--expand-tabs[=in-tabchar[in-tabwidth]]
-f
-F
--form-feed
-h HEADER
--header=HEADER
*
で印が付いた)切り詰めは,ヘッダ行全体のyyyy-mm-dd
HH:MM HEADER Page nnnn
がpage_widthより大きくなった場合に発生する
かも知れません.-h ""
は空白行のヘッダを出力します.-h""
を
使用しないでください.-h
オプションと引数の間の空白は,常に不可欠
です.
-i[out-tabchar[out-tabwidth]]
--output-tabs[=out-tabchar[out-tabwidth]]
-J
--join-lines
-column
,-a
-column
や-m
とともに使用されます.-W/-w
の行の切り詰
めを停止します.列の整列は使用されません.-S[string]
ととも
に使用されるかもしれません.-J
は(-W
と-S
とともに),3
列オプションの古い(posix準拠の)オプション-w
と-s
を解
決するために導入されました.
-l page_length
--length=page_length
-F
が3以下)の場
合,ヘッダとフッタは取り除かれ,入力ファイルの全てのフォームフィード設定
は,-T
オプションが指定されたかのように無視されます.
-m
--merge
yyyy-mm-dd HH:MM <blanks>
Page nnnn
になります.中間の空白部分を満たすため,-h header
を使用できます.
-n[number-separator[digits]]
--number-lines[=number-separator[digits]]
-m
出力のそれぞれの行のみを占有します.単一列では,出力番号は
それぞれの行に-m
が行うように生成します.デフォルトの行のカウント
の開始は,入力ファイルの最初の行で始まります(--page
オプションや
-N
オプションと比べて,最初に印刷される行ではありません).オプショ
ン引数number-separatorは,以下に続くテキストと分けるために行数に後
置される文字です.デフォルトの分離文字はTAB文字です.厳密な意味で,TABは
常に単一の列の出力としてのみ出力されます.TAB幅はTAB位置で変
化し,例えば,左のmarginが-o
オプションで指定された場合です.
複数列出力のプロパティは,equal width of output columns
(posix指定)で与えられます.TAB幅は,最初の列の値で固定され,
左のmarginの値の違いでは変更されません.それは,固定数のスペースが
常にnumber-separator tabの位置に出力されることを意味します.タブ機
能は出力位置に依存します.
-N line_number
--first-line-number=line_number
-o margin
--indent=margin
-W/-w
オプションの
page_width設定を加えたものになります.数字付の単一列の出力
(-n
オプションと比べて)では限定されたオーバーフローが発生するかも
しれません.
-r
--no-file-warnings
-s[char]
--separator[=char]
-w
と
no character
がなく,-w
がある場合,TAB文字になります.
-s
が無い場合デフォルトの分離文字はspace
に設定されます.
-s[char]
は,-w
が設定されていない場合,全ての3列オプション
(-COLUMN
|-a -COLUMN
|-m
)の行の切り詰めを停止します.
それは,posix準拠の公式なものです.
-S[string]
--sep-string[=string]
-S
オプションは
-s
オプションと異なり,-W/-w
オプションに対し効果がありませ
ん.それは,行の切り詰めや列の整列に効果がありません.-S
が無く,
-J
がある場合,pr
は,デフォルトの出力セパレータTABを使用し
ます.-S
や-J
が無い場合,pr
はspace
を使用しま
す(-S" "
と同じです).string無しで-S
を使用することは,
-S""
と同じです.pr
のオプションのいくつかに対し,単一文字の
オプション文字に,対応する引数を直後に続ける必要があることに注意してくだ
さい.空白を間に入れることはできません.-S/-s
はその中の1つです.
-S "STRING"
とを使用しないでください.POSIXはこれを要求します.
-t
--omit-header
-t
や-T
は,他のオプショ
ンとともに使用すると便利かもしれません.例えば,-t -e4
は,入力ファ
イルのTAB文字を4つのスペースに展開しますが,それ以外の変更を行いません.
-t
の使用は-h
に優先します.
-T
--omit-pagination
-v
--show-nonprinting
-w page_width
--width=page_width
-s[CHAR]
は,デフォ
ルトページ幅を停止し,あらゆる行は切り詰められ,列は整列されます.十分な
長さの行は,列オプションの設定にかかわらずマージされます.
page_width設定が無い場合,おそらく単一列の出力になります.
posix準拠の公式なものです.
-W page_width
--page_width=page_width
-J
が使用されない場合,テキスト行は切り詰められます.3列オ
プション(-column
,-a -column
または-m
)の
1つとともに用いた場合,列の整列は常に使用されます.セパレータオプション
の-S
や-s
は,-W
オプションに効果はありません.デフォ
ルトは72文字です.-W page_width
が無く,あらゆる列オプション
が無い場合,行の切り詰めは行われません(下位互換を保つためと,よくある仕
事に合わせるために定義されています).それは,-W 72 -J
と同じです.
-W page_width
に関係なく,行を溢れさせるのを防ぐため,ヘッダ
行は常に切り詰められます.
fold
: 指定された幅に合わせるため,入力行を折り曲げるfold
は,それぞれのfile (-
は標準入力を意味します)や,
与えられない場合は標準入力を,長い行を折曲げながら標準出力に書き出します.
概要です.
fold [option]... [file]...
デフォルトで,fold
は80列以上の幅の行を折曲げます.出力は必要な行
数に分けられます.
fold
はデフォルトで画面の列を数えます.こうして,タブは1列以上に数
えられ,バックスペースは列のカウント数を減らし,そして,キャリッジリター
ンは列をゼロに設定します.
プログラムは,以下のオプションも受け入れます.Common options,も参 照してください.
-b
--bytes
-s
--spaces
-w width
--width=width
これらのコマンドは,入力の一部を出力します.
head
: ファイルの最初の部分を出力head
は,それぞれのfileの最初の部分(デフォルトで10行)出力し
ます.ファイルが与えられない場合や,-
というfileが与えられた
ときは標準入力から読み込みます.概要です.
head [option]... [file]... head -number [option]... [file]...
1つ以上のfileが指定された場合,head
は以下から成り立つ1行の
ヘッダを出力します.
==> file name <==
それはそれぞれのfileに対する出力の前になります.
head
は2つのオプションの書式を受け入れます.新しいものは数字がオプ
ションの引数になるもの(-q -n 1
)で,古いものは数字があらゆるオプショ
ン文字の前にあるもの(-1q
)です.
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-countoptions
-c
オプションで単位文字(b
,k
,m
)や,
行数を意味するl
,そしてその他のオプション文字(cqv
)が続きま
す.
-c bytes
--bytes=bytes
b
はbytesの512倍,k
は1024倍,そしてm
は1048576
倍になります.
-n n
--lines=n
-q
--quiet
--silent
-v
--verbose
tail
: ファイルの最後の部分を出力tail
は,それぞれのfileの最後の部分(デフォルトで10行)出力し
ます.ファイルが与えられない場合や,-
というfileが与えられた
ときは標準入力から読み込みます.概要です.
tail [option]... [file]... tail -number [option]... [file]... tail +number [option]... [file]...
1つ以上のfileが指定された場合,tail
は以下から成り立つ1行の
ヘッダを出力します.
==> file name <==
それはそれぞれのfileに対する出力の前になります.
GNU tail
は,あらゆる量のデータを出力できます(tail
の他のバー
ジョンにはできないものもあります).ファイルを逆順にすることはファイルの
終りを出力する仕事と全く異なるので,-r
オプション(逆順に出力)もあ
りません.BSD tail
(-r
を伴うものの1つ)は,最大でそのバッファ
の大きさまで,通常32kのファイルを逆順にすることが可能なだけです.ファイ
ルを逆順にするより信頼性のある用途が広い方法は,GNU tac
コマンドで
す.
tail
は2つのオプションの書式を受け入れます.新しいものは数字がオプ
ションの引数になるもの(-n 1
)で,古いものは数字があらゆるオプショ
ン文字の前にあるもの(-1
や+1
)です.
あらゆるオプション引数が,+
で始まる数字nの場合,tail
は,ファイルの終りの代わりに,それぞれのファイルの最初からn番目の
項目で出力を開始します.
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-count
+count
-c
オプションで単位文字(b
,k
,m
)や,
行数を意味するl
,そしてその他のオプション文字(cfqv
)が続き
ます.
-c bytes
--bytes=bytes
b
はbytesの512倍,k
は1024倍,そしてm
は1048576
倍になります.
-f
--follow[=how]
tail
は
ヘッダを出力します.
このオプションで,ファイルを追跡する方法を指定する方法が2つありますが,
その違いは,続くファイルが削除されたか名前を変更されたときのみ,通知可能
です.リンクが無くなった後でも,増え続けるファイルの終りの追跡を続けたい
場合は,--follow=descriptor
を使用してください.これはデフォルトの
動作ですが,回転(rotate)される(削除や名前の変更がなされ,再び開かれる)ロ
グファイルを追跡しているときは不便です.その場合,他のプログラムにより削
除され再作成されたかどうかを周期的に見て,再び開かれる指名されたファイル
を追跡するため,--follow=name
を使用してください.
使用している方法にかかわらず,追跡しているファイルが縮まっていると決定さ
れた場合,tail
はfileが切り詰められたことを告げるメッセージを出力
し,新たに決定された終端からファイルの終りを再追跡しはじめます.
ファイルが削除されたとき,tail
の動作は,名前で続けるか記述子で続
けるかに依存します.名前で続けるとき,tail
はファイルが削除された
ことと,その効果にメッセージを与えることが検出でき,--retry
が指定
されている場合,ファイルが再び現れたかどうかを見るため,周期的な調査を続
けるでしょう.記述子で続けるとき,tail
はファイルのリンクが切れた
り名前が変更されたことを検出せず,メッセージを発しません.ファイルは既に
元の名前でアクセスできませんが,まだ増加しているかもしれません.
オプション値のdescriptor
とname
はオプションの長い形式でのみ
指定でき,-f
では指定できません.
--retry
tail
が,存在していない,またはそれ以外のアクセスできない
ファイルに遭遇したとき,それはその事実を報告し再び調査しません.
--sleep-interval=n
--pid=pid
tail
も終了します.これは書き込んでいるものとtail
プロセスが
同じマシンで働いている場合のみ正確に働きます.例えば,ファイルにビルドの
出力を保存したり,ファイルが大きくなるのを見たりするため,make
と
tail
を以下のように呼び出し,ビルドが完了したときtail
の処理
は終了します.このオプションが無い場合,tail -f
プロセスを自分でキ
ルする必要があります.
$ make >& makerr & tail --pid=$! -f makerr使用中でない,または,
tail
されるファイルに書き込んでいるプロセス
に対応しないpidを指定した場合,tail
はあらゆるfileが増
加するのを停止する前に終了する,または,実際に書き込んでいるものが終了し
た後,しばらくしてから終了します.
--max-consecutive-size-changes=n
tail
の長さを制御するために使用してください.ファイルに対
し,サイズ変更が連続してn検出した後で,ファイル名が,以前と同じデ
バイス/inode番号の対で対応されているかどうか決定するため,ファイルを
open
/fstat
します.デフォルト値は,tail --help
の出力
を参照してください.
--max-unchanged-stats=n
tail
しているとき,同じ大きさのままで,繰り返しが
連続して何度もある場合,ファイル名が,以前と同じデバイス/inode番号の対で
対応されているかどうか決定するため,ファイルをopen
/fstat
し
ます.回転(rotate)されているログファイルを続けるとき,前回に回転した行を
tail
が出力するときと,新しいログファイルで蓄積された行を出力する
ときの間は,おそらく数秒になります.デフォルト値はtail --help
の出
力を参照してください.このオプションは,名前で続けているときのみ意味があ
ります.
-n n
--lines=n
-q
-quiet
--silent
-v
--verbose
split
: ファイルを固定サイズの部分に分割split
は,input(inputが与えられなかったり,-
の
場合は標準入力)の連続したセクションを含む出力ファイルを生成します.概要
です.
split [option] [input [prefix]]
デフォルトで,split
はinputの1000行(または,最後のセクション
は残り)を,それぞれの出力ファイルに書き込みます.
出力ファイルの名前はprefix (デフォルトはx
)から成り立ち,
aa
,ab
等の文字の集合が続き,それは,出力ファイルをファイル
名の順番でソートして結合したものが,元の入力ファイルを生成するようにする
ためです.出力ファイルが676以上必要な場合,split
はzaa
,
zab
等を使用します.)
このプログラムは以下のオプションも受け入れます.Common options,も 参照してください.
-lines
-l lines
--lines=lines
-b bytes
--bytes=bytes
b
の後置はbytesの512倍,k
は1024倍,そして
m
は1048576倍です.
-C bytes
--line-bytes=bytes
--bytes
オプションに対するものと同じ書式です.
--verbose
csplit
: ファイルを文脈で決定された部分に分割csplit
は,input (inputが-
の場合は標準入力)の部
分を含む,ゼロ以上の出力ファイルを作成します.概要です.
csplit [option]... input pattern...
出力ファイルの内容は,後で詳述するpattern引数で決定されます. pattern引数が,入力ファイルに存在しない行を参照する場合,エラーが 発生します(例えば,残っている行が与えられた正規表現に一致しない場合).全 てのpatternが一致した後,あらゆる残りの入力は,1つの最後の出力ファ イルにコピーされます.
デフォルトで,csplit
は,それぞれの出力ファイルが作成された後,バ
イト数を書き込みます.
pattern引数の形式は以下の通りです.
n
/regexp/[offset]
+
または-
に正の整数が続きます.与えられた場
合,一致行までの入力に,offset加えた,または引いた入力まで出力ファ
イルに書き出され,その後の行は入力の次の部分になります.
%regexp%[offset]
{repeat-count}
出力ファイル名は,前置(デフォルトでxx
)とそれに続く接尾子から成り
立ちます.デフォルトで接尾子は2桁の10進数で,00
から99
まで
順番に上昇します.あらゆる場合で,ファイル名の順番でソートされた出力ファ
イルを連結すると,元の入力ファイルを生成します.
デフォルトで,csplit
がエラーや,ハングアップ,中断,終了,または
終端シグナルを検出した場合,それまでに存在する作成されたあらゆる出力ファ
イルを削除します.
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-f prefix
--prefix=prefix
-b suffix
--suffix=suffix
printf(3)
形式の変換で
の指定を含む必要があり,おそらく,書式指定のフラグ,フィールドの幅,正確
な指定,または,これら全ての修飾語を含みます.フォーマット文字は,2進の
整数の引数を可読なものに変換する必要があります.このため,d
,
i
,u
,o
,x
,そしてX
の変換は可能です.
完全なsuffixは,順番にそれぞれの個別な出力ファイルに対し,ファイル
名の接尾子を形成するため,(現在の出力ファイル数とともに)
sprintf(3)
に与えられます.このオプションを使用した場合,
--digits
オプションは無視されます.
-n digits
--digits=digits
-k
--keep-files
-z
--elide-empty-files
-s
-q
--silent
--quiet
これらのコマンドは,ファイルの内容全体を表現するいくつかの数字を生成しま す.
wc
: バイト,単語,行数を出力wc
は,それぞれの与えられたfileや,与えられなかった場合や
-
のfileに対し,バイト数,空白で区切られた単語,そして改行を
数えます.概要です.
wc [option]... [file]...
wc
は,それぞれのファイルに対し,数えたものを1行出力し,ファイルが
引数として与えられた場合,カウントに続けてファイル名を出力します.1つ以
上のfileが与えられた場合,wc
は,ファイル名total
と共
に,累積カウントを最終行に出力します.カウントは,以下の順序で出力されま
す.改行,単語,バイトです.デフォルトで,それぞれのカウントは,数字とファ
イル名の行が列にうまく並ぶように,右寄せで,7バイトフィールドで,それぞ
れのフィールドの間にスペースを入れて出力します.しかし,POSIXは列を分け
るために,正確に1つのスペースがあることを要求します.
POSIXLY_CORRECT
環境変数を設定することで,wc
を出力形式が
POSIXで義務化されているようにさせることができます.
デフォルトで,wc
は3つのカウントすべてを出力します.オプションで,
出力したいカウントのみを指定することができます.オプションは,前に与えら
れたものを元に戻すことはできません.そのため,以下のようにした場合を考え
ます.
wc --bytes --words
これは,バイトカウントと単語のカウントの両方を出力します.
--max-line-length
オプションを用いた場合,wc
はファイル毎の
最長の行の長さを出力し,1つ以上のファイルがある場合,それらの長さの(合計
ではなく)最大を出力します.
プログラムは以下のオプションも受け入れます.Common options,も参照 してください.
-c
--bytes
--chars
-w
--words
-l
--lines
-L
--max-line-length
sum
: チェックサムとブロック数を出力sum
は,与えられたそれぞれのfile,または,与えられない場合や
-
のファイルが与えられた場合は標準入力の16ビットのチェックサムを計
算します.概要です.
sum [option]... [file]...
sum
は,それぞれのfileのチェックサムに続けて,ファイルのブロッ
ク数を(切り上げで)出力します.1つ以上のfileが与えられた場合,ファ
イル名も出力されます(デフォルト).(--sysv
オプションを指定した場合,
少なくとも1つのファイル引数があるときは,対応するファイル名が出力されま
す.)
デフォルトで,GNU sum
は,BSD sum
と互換性のあるアルゴリズム
を用いて計算し,ファイルサイズを1024バイトブロックの単位で出力します.
プログラムは以下のオプションも受け入れます.Common options,も参照 してください.
-r
sum
との互換性も含みます.-s
を与えない限り,効果はありま
せん.
-s
--sysv
sum
のデフォルトと互換のアルゴリズムを使用して,チェック
サムを計算し,512バイトブロックの単位でファイルサイズを出力します.
sum
は,互換性のために提供されています.cksum
プログラム(次
のセクションを参照)は,新しいアプリケーションでは望ましいです.
cksum
: CRCチェックサムとバイトカウントを出力cksum
は,与えられたそれぞれのfile,または,与えられない場合
や-
のファイルが与えられた場合は標準入力の周期的な冗長性の調査
(CRC)のチェックサムを計算します.概要です.
cksum [option]... [file]...
cksum
は,ファイルのバイト数と一緒に,それぞれのファイルに対し,
CRCチェックサムと,引数が与えられていない場合以外はファイル名を出力しま
す.
cksum
は,通常,信用できない手段(例えば,ネットニュース)で転送され
たファイルが切り詰められていないか,受信したファイルのcksum
出力と
元ファイルのcksum
出力(通常は配布物で与えられます)を比較することで
確認するために使用します.
CRCアルゴリズムは,POSIX.2標準で指定されました. BSDやSystem V
sum
アルゴリズムとは互換性がありません(前のセクションを参照してく
ださい).それはより強固です.
オプションは--help
と--version
だけです.See Common options.
md5sum
: メッセージダイジェストの出力と調査md5sum
は,それぞれ指定されたfileに対し,128-bitチェックサム
(またはfingerprint,またはmessage-digest)を計算します.
fileが-
で指定されたり,ファイルが与えられていない場合は,
md5sum
は標準入力のチェックサムを計算します.md5sum
は,ファ
イルとチェックサムが一貫しているかどうか決定することも可能です.概要です.
md5sum [option]... [file]... md5sum [option]... --check [file]
それぞれのfileに対し,md5sum
は,MD5チェックサム,入力ファイ
ルがバイナリかテキストかを示すフラグ,そしてファイル名を出力します.
fileが無い,または-
として指定されている場合,標準入力を読み
込みます.
プログラムは以下のオプションも受け入れます.Common options,も参照 してください.
-b
--binary
-c
--check
md5sum
のこ
のモードでの入力は,通常前回の出力で,md5sum
の実行でチェックサム
が生成したものです.それぞれの入力の有効な行は,MD5チェックサムから成り
立ち,バイナリ/テキストフラグと,ファイル名です.バイナリファイルは,
*
で,テキストは
印が付きます.それぞれのそのような行に対し,
md5sum
は,指名されたファイルを読み込み,そのMD5チェックサムを計算
します.そして,計算されたメッセージダイジェストが,ファイル名を持つ行の
1つと一致しない場合,ファイルはテストに失敗したことをメモされます.それ
以外の場合,ファイルは調査を通過します.デフォルトで,それぞれの有効な行
に対し,指名されたファイルが調査を通過したかどうかを示す1行を,標準出力
に書かれます.全ての調査の実行後,失敗があった場合,警告を標準エラーに発
行します.出力を抑制するために,--status
オプションを使用してくだ
さい.リストアップされたファイルに,開いたり読み込んだりでできないものが
ある場合,有効な行が関連するファイルとMD5チェックサムに一貫性が無い場合,
または,有効な行が見つからない場合,md5sum
はゼロ以外のステータス
で終了します.それ以外の場合は,正しく終了します.
--status
-t
--text
--binary
の反対です.
-w
--warn
これらのコマンドは,ソートされたファイルで働く(あるいはそれを生成する)コ マンドです.
sort
: テキストファイルをソートsort
は,与えられたファイル,または与えられない場合や,-
の
fileからの全ての行を,ソート,統合,または比較します.デフォルトで,
sort
は結果を標準出力に書き出します.概要です.
sort [option]... [file]...
sort
は,処理時に3つのモードがあります.ソート(デフォルト),統合,
そしてソートされてることの調査です.以下のオプションで処理モードを変更し
ます.
-c
-m
行の対が,以下のように比較されます.キーフィールドが指定された場合,
sort
は,それぞれのフィールドの組を,コマンドラインで指定された順
番で,関連する順序オプションで,差が見つかるまで,またはフィールドの残り
が無くなるまで比較します.指定されない場合は,全てに比較に,
LC_COLLATE
ロケールで指定された,文字の対照する順番を使用します.
大域的なオプションMbdfinr
が与えられて,キーフィールドが指定されて
いない場合,sort
は大域的なオプションに従い,行全体を比較します.
最終的に,全てのキーが同じとき(または,順序オプションが全く指定されてい
ない場合),最後の手段として,sort
は行全体を比較します.最後の手段
は,-r
の大域的なオプションを尊重して比較します.-s
(stable)オプションは,この最後の手段では利用できず,それは,全てのフィー
ルドの比較が同じ行は,元の相対的な順序のままにするためです.フィールド,
または,大域的なオプションが指定されない場合,-s
は効果がありませ
ん.
GNU sort
は,(全てのGNUユーティリティで指定されるように)入力行の
長さの制限や,行で許可されるバイト数の限界がありません.更に,入力ファイ
ルの最終バイトが改行でない場合,GNU sort
は,黙ってそれを供給しま
す.行の後ろの改行は,比較の目的では行の一部です.例えば,ASCIIロケー
ルでオプションを用いない場合,ASCIIの対照の順序では,タブは改行の前
にあるので,タブで始まる行は空の行の前に来ます.
あらゆるエラーで,sort
は2
のステータスで終了します.
環境変数TMPDIR
が設定されている場合,sort
は,その変数を
/tmp
の代わりの一時ファイルのためのディレクトリとして使用します.
-T tempdir
オプションは,順序的に環境変数に優先します.
以下のオプションは,出力行の順序に影響します.それらは,大域的,またはキー
フィールドの一部として指定可能です.キーフィールドが指定されていない場合,
大域的なオプションは行全体の比較に対して適用されます.それ以外では,大域
的なオプションは,それ自身オプションが指定されていないキーフィールドに継
承されます.-b
,-d
,-f
,そして-i
オプションは,
LC_CTYPE
ロケールに従い,文字を分類します.
-b
-d
-f
b
とB
は同等
にソートされます.
-g
strtod
を使用します.これで,
1.0e-34
と10e100
のような浮動小数点の数を,科学的な表記方で
指定できます.オーバーフローや,アンダーフロー,変換エラーは報告しません.
以下の対照の順序を使用します.
他に選択肢が無い場合のみ,このオプションを使用してください.-n
よ
りはるかに遅く,浮動小数点に変換するとき,情報を失うはずです.
-i
-M
JAN
< FEB
< ... < DEC
の
順に比較されます.無効な名前は,有効な名前の下になります.LC_TIME
ロケールは,月の綴を決定します.
-n
-
記号,そして,1000で区切られたり,小数点文字とゼ
ロ以上の桁を続けることが可能な,ゼロ以上の桁から成り立ちます.
LC_NUMERIC
ロケールで,小数点文字と1000区切りを指定します.
sort -n
は,浮動小数点の数を表現する文字列を比較するため,慣習的と
は思われない手法を使用します.最初にそれぞれの文字列をC double
形
式に変換して,それらの値を比較するのではなく,ソートは,2つの文字列の小
数点文字を一列に並べて,一度に文字の列を比較します.このアプローチを使う
1つの利益は速度です.実際には,それは,2つの対応する文字列を倍精度浮動小
数点に(または,文字列を整数に)変換し,倍精度浮動小数点を比較するより効率
的です.更に,精度に対応する損失はありません.それぞれの文字列を比較前に
double
に変換することは,ほとんどのシステムで16桁程度に精度が制限
されるでしょう.
前置される+
も,指数表記も認識されません.そのような文字列を数値的
に比較するために,-g
オプションを使用してください.
-r
その他のオプションは以下の通りです.
-o output-file
sort
はそれを,ソート
前に一時ファイルにコピーし,output-fileに出力を書き出します.
-t separator
foo bar
が与えられた場合,sort
はそれを,フィールド foo
と
bar
に分離します.フィールドセパレータは,フィールドの前やフィー
ルドの後の部分とは考えられません.
-u
-m
オプションに対し,比較が等しい行の順序の最初
のみを出力します.-c
オプションに対し,比較が等しい連続した行の対
が無いことを調査します.
-k pos1[,pos2]
-k 2,2
を使用してください.以下により多くの例があります.
-z
perl -0
や,find -print0
とxargs -0
と組み合わせると便
利です.
+pos1[-pos2]
更に,GNU sort
が正確に1つの引数で呼び出されたとき,オプション
--help
と--version
は認識されます.See Common options.
歴史的な(BSDとSystem Vの)sort
の実装は,いくつかのオプションの解釈
で異なり,特に,-b
,-f
と-n
です.GNU sort
は,
POSIXの動作に従い,それは通常(常にではない!)System V の動作に似てい
ます.POSIXによると,-n
は,もはや-b
を暗示しません.一
貫性のため,-M
も同様に変更されました.これは,分かりにくい場合の
フィールドの指定で,文字の位置の意味に影響するかもしれません.唯一の訂正
は,明示的に-b
を加えることです.
-k
や+
オプションを用いたソート時のフィールド指定の位置は,
f.c
形式を持ち,fは使用するフィールド数で,
cは(+pos
に対する)フィールドの最初から,または,
(-pos
に対する)前のフィールドの終りからの,最初の文字数です.
.c
が省略された場合,フィールドの最初の文字を用います.
-b
オプションが指定された場合,指定したフィールドの.c
の部分は,(+pos
に対する)フィールドの最初の空白ではない文字
から,または,(-pos
に対する)前のフィールドから続く最初の空
白ではない文字から数えます.
ソートキーオプションは,オプション文字Mbdfinr
を加えることが可能で,
その場合,大域的な順序オプションは,特定のフィールドに使用されません.
-b
オプションは,指定したフィールドの+pos
と
-pos
の部分の,一方または両方に独立に適用され,大域的なオプ
ションを継承する場合,両方に適用されます.キーは複数のフィールドに跨るこ
とができます.
ここに,様々なオプションの組合せを紹介する例があります.その中で,ソート
キーを指定するためのPOSIX -k
オプションが,時代遅れの
+pos1-pos2
構文の代わりに使用されています.
sort -nr
アルファベット順に,最初と2番目のフィールドを除いてソートします.これは, フィールド3から始まり,それぞれの行の終りまで続く文字で構成された,単一 のキーを使用します.
sort -k3
:
を使用します.
sort -t : -k 2,2n -k 5.3,5.4
-k 2,2
の代わりに-k 2
と書いた場合,sort
は2番目のフィー
ルドで始まり,行の終りまで続く全ての文字を,主要な数値キーとして
使用することに注意してください.アプリケーションのほとんど大多数に対し,
数値として1フィールド以上に跨って扱うキーは,期待したものではないでしょ
う.
また,n
の修飾は,最初のキーに対し,フィールドの終りを指定するもの
に適用されることに注意してください.それは,-k 2n,2
や-k
2n,2n
を指定することと同じです.全ての修飾は,b
が関連する
フィールドに適用されることを期待し,修飾文字がフィールドの最初と/また
は,キー指定のフィールドの終りに適用されるかどうかに依存しません.
sort -t : -k 5b,5 -k 3,3n /etc/passwd
代わりに,大域的な数値の修飾-n
を使用します.
sort -t : -n -k 5b,5 -k 3,3 /etc/passwd
find src -type f -print0 | sort -t / -z -f | xargs -0 etags --append
この場合,-print0
,-z
と-0
の使用は,Line Feed 文字を
含むパス名がソート処理で分かれないようにします.
最後に,前後の空白を無視するため,b
修飾を最初のキーに対しフィール
ドの終りの指定に適用できます.
sort -t : -n -k 5b,5b -k 3,3 /etc/passwd
または,大域的な-b
修飾を-n
の代わりに使用し,2番目のキー指
定にn
を明示します.
sort -t : -b -k 5,5 -k 3,3n /etc/passwd
uniq
: ファイルのユニーク化uniq
は与えられたファイル,または与えられない場合や-
の
input名に対し,ユニークな行を書き出します.概要です.
uniq [option]... [input [output]]
デフォルトで,uniq
はソートされたファイルのユニークな行を出力し,
すなわち,一意に識別可能な行以外を全て削除します.オプションで,そうする
代わりに,1度しか現われない行を表示したり,1度以上現われる行を表示したり
できます.
入力ファイルはソートされている必要があります.入力がソートされていない場
合,おそらくsort -u
を使用したいと思います.
outputファイルが無い場合,uniq
は標準出力に書き出します.
このプログラムは,以下のオプションも受け入れます.Common options, も参照してください.
-n
-f n
--skip-fields=n
+n
-s n
--skip-chars=n
-c
--count
-i
--ignore-case
-d
--repeated
-D
--all-repeated
-u
--unique
-w n
--check-chars=n
comm
: 2つのソートされた行と行の比較comm
は,2つの入力ファイルの共通の行とユニークな行を標準出力に書き
出します.-
のファイル名は標準有力を意味します.概要です.
comm [option]... file1 file2
comm
を使用する前に,LC_COLLATE
で指定された対照表の順に入力
ファイルをソートする必要があり,後置される改行が重要です.入力ファイルが
改行文字で終らない場合,改行は暗黙に付加されます.オプションを用いない
sort
コマンドは,comm
の入力に適したファイルを常に出力します.
オプションが無い場合,comm
は3列の出力を生成します.列の1は
file1のユニークな行を含み,列の2はfile2のユニークな行を含み,
列の3は両方のファイルに共通な列を含みます.これ無は単一のTAB文字で分けら
れます.
オプションの-1
,-2
と,-3
は,対応する列の出力を抑制
します.Common options,も参照してください.
他の比較ユーティリティと異なり,comm
は比較の結果に依存しない終了
ステータスがあります.上記の通常の比較で,comm
はゼロのコードで終
了します.エラーがあった場合,ゼロでないステータスで終了します.
tsort
: 位相幾何学的なソートtsort
は,位相幾何学的なソートを,与えられたファイルや,入力ファイ
ルが与えられない場合や-
のファイルに対しては標準入力で実行します.
概要です.
tsort [option] [file]
tsort
は,その入力を文字列の組として読み込み,空白で分離し,それは
不完全な順序で示されています.出力は,与えられた不完全な順序に対応する完
全な順序です.
例えば以下のようにします.
tsort <<EOF a b c d e f b c d e EOF
これは以下の出力を生成します.
a b c d e f
tsort
は入力で円を検出し,出現した最初の円を標準エラーに書き出しま
す.
与えられた不完全な順序が,一般に唯一の完全な順序でないことに注意してくだ さい.
オプションは,--help
と--version
のみです.See Common options.
ptx
: 並べ替えた索引の生成ptx
は,テキストファイルを読み込み,その内容のそれぞれのキーワード
を用いて,並べ替えられた索引を本来は生成します.呼び出しの形態は以下の1
つです.
ptx [option ...] [file ...] ptx -G [option ...] [input [output]]
-G
(または同等の: --traditional
)オプションは,全てのGNU拡張
を利用不可にし,伝統的なモードに切替え,そのため,いくつかの制限と,プロ
グラムのオプションデフォルト値を変更します.-G
が指定されていない
場合,GNU拡張は常に利用可能です.ptx
のGNU拡張は,このドキュメント
に適切に文章化されています.完全なリストは,See Compatibility in ptx.
個別のオプションは,以下のセクションで説明されます.
GNU拡張が利用可能なとき,ゼロ,1つまたは複数のfileが,オプションの 後にあります.fileが無い場合,プログラムは標準入力から読み込みます. 1つまたは複数fileある場合,全ての入力ファイルが連結されているかの ように,その回で全て読み込まれる入力ファイル名を与えます.しかし,それぞ れのファイルの間に完全に文脈の終りが有り,自動的な参照が要求されるとき, ファイル名と行番号は,入力ファイルの個別のテキストを参照します.全ての場 合で,プログラムは並べ替えられた索引を標準出力に書き出します.
GNU拡張が利用可能でないとき,すなわち,伝統的なモードでプログラム
が動作しているとき,ゼロ,1つまたは2つのパラメータがオプションの後にあり
ます.パラメータが無い場合,プログラムは標準入力を読み込み,標準出力に並
べ替えた索引を生成します.1つのパラメータのみの場合,それは標準入力の代
わりに読み込まれるテキストinputを指名します.2つのパラメータが与え
られた場合,それらはそれぞれ,読み込まれるinputファイル名と,生成
するoutputファイル名を与えます.この場合,2番目のパラメータとして
与えられるファイルの内容が壊れることに十分注意してください.この
動作は,出力パラメータを妨げるGNU標準がオプションで導入されたのではない
ので,System V ptx
互換のみにより規定されています.
あらゆるファイルは,オプション値や入力テキストファイルとして指 名され,単一のダッシュ-は使用でき,その場合標準入力と考えられます. しかし,プログラムの呼び出しに1回以上,この慣習を使用する意味はありませ ん.
-C
--copyright
-G
--traditional
ptx
に対する全てのGNU拡
張を利用不可にし,伝統的なモードに切替えます.
--help
--version
現在セットアップされているので,プログラムは,入力ファイルが8ビットISO
8859-1コードを使用して符号化されていると考え,Latin-1文字セットだという
ことも分かりますが,それは,MS-DOSでコンパイルされていない場合で,
その場合はIBM-PCの文字セットを使用します.(GNU ptx
は,より小さい
MS-DOSマシンで働く方法を知りません.) 7-bit ASCIIに比べて,文字であ
る文字セットは異なっていて,この事実は正規表現の一致の動作を変更します.
そのため,キーワードに対するデフォルトの正規表現で,外国や発音記号の文字
が可能となります.しかし,キーワードのソートはそのままです.それは,全く
盲目的に基礎的な文字セットの順序に従います.
-f
--ignore-case
-b file
--break-file=file
-W
)の代替物を提供
します.それは,単語の部分にならない文字のリストを含むファイル名を導入し,
このファイルはブレークファイルと呼ばれます.ブレークファイルの一部
でないあらゆる文字は単語の要素です.-b
と-W
を両方指定した場
合,-W
が優先され-b
は無視されます.
GNU拡張が利用可能な場合,改行をブレーク文字とすることを避ける唯一の方法
で,ファイルの終りにさえ改行が全く無いファイルに,全てのブレーク文字を書
くことでできます.GNU拡張が利用不可能な場合,スペース,タブ,改行は,ブ
レークファイルの含まれている場合でさえ,常にブレーク文字と考えます.
-i file
--ignore-file=file
-S
オプションの値を適用されません.
このオプションが指定されない場合,デフォルトの無視ファイルはptx
が
使用され,インストール時に変更されていない場合,通常は
/usr/local/lib/eign
で見つかります.デフォルトの無視ファイルの影響
を無くしたい場合,代わりに/dev/null
を指定してください.
-o file
--only-file=file
-S
オプションの値を
適用されません.
オンリーファイルにデフォルトはありません.オンリーファイルと無視ファイル
の両方にある場合,オンリーファイルで与えられ,無視ファイルで与えられない
単語のみキーワードに適用されます.
-r
--references
-S
に対するデフォルト値を変更します.
このオプションの使用で,プログラムは出力の文脈からの参照の削除の試みが非
常に難しくなりますが,文脈の終りが正確に改行で終るとき,そうする
ことに成功します.オプション-r
が-S
デフォルト値とともに使用
された場合や,GNU拡張が利用不可能なとき,この条件は常に満たされ,参照は
完全に出力文脈から除外されます.
-S regexp
--sentence-regexp=regexp
-r
オプションが使用されていない場合,文の終
りが使用されます.この場合,正確なregexはGNU emacsから取り込まれま
す.
[.?!][]\"')}]*\\($\\|\t\\| \\)[ \t\n]*
GNU拡張が使用不可能なときや,-r
オプションが使用されている場合は,
常に行の終りが使用され,この場合デフォルトのregexpは以下のようにな
ります.
\n
空のregexpの使用は,行末と文の終りの認識を完全に不可能にすることと
同等です.この場合,ファイル全体が単一の大きな行や文と考えられます.ユー
ザは,オプション-F ""
を通じて,全ての切り詰めフラグの生成を,不許
可にしたい場合もあります.See Regexps.
キーワードが入力行や文の最初で発生したとき,出力文脈の行の最初に利用され ない領域を作成することが良くあります.キーワードが入力行や文の終り近くで 発生したとき,出力文脈の行の終りに利用されない領域を作成することが良くあ ります.プログラムは,その中の文脈の周りを包むことで,それらの領域を補充 しようとします.入力行や文の頭は,出力行の右の利用されていない行を補充す るために使用されます.
ユーザの利便性の問題として,C言語で見つかる,多くの通常のバックスラッシュ
されたエスケープ・シーケンスは認識され,ptx
自身によって対応する文
字に変換されます.
-W regexp
--word-regexp=regexp
\w+
です.GNU拡張が利用不可能な場合,単語はデフォル
トで,スペース,タブ,または改行で終るあらゆるものです.使用される
regexpは[^ \t\n]+
です.
空のregexpは,このオプションを使用しないのと同等で,デフォルト動作 になります.See Regexps.
ユーザの利便性の問題として,C言語で見つかる,多くの通常のバックスラッシュ
されたエスケープ・シーケンスは認識され,ptx
自身によって対応する文
字に変換されます.
出力書式は,主に-O
と-T
オプションで制御され,それは以下の表
で記述されています.-O
も-T
も選択されていないときで,GNU拡
張が利用可能な場合,プログラムは dumb 端末に適した出力書式を選択します.
それぞれのキーワードの発生は,出力を行の中心にし,周りをその左右の文脈で
囲います.それぞれのフィールドは適切に正当化されるので,用語索引の出力は
容易に観察できます.特別な特徴として,自動的な参照がオプション-A
で指定されていて,左の文脈の前に出力されている,すなわち,オプション
-R
が選択されていない場合,コロンが参照の後に追加されます.
これは,GNU Emacsがnext-error
を処理することでうまく作用します.こ
のデフォルト出力書式では,改行やタブのようなそれぞれの空白文字は,正確に
1つのスペースに単に変換され,連続したスペースの圧縮は特に試みません.こ
れは将来変更されるかも知れません.これらの空白文字以外の,256文字の基本
セットの全ての他の文字は逐語的に転送されます.
出力書式は,以下のオプションで更に制御されます.
-g number
--gap-size=number
-w number
--width=number
-R
オプションの値に依存して,それらは出力最大幅に含められたり省か
れたりします.これらのオプションが選択されていない場合,すなわち,参照が
左の文脈の前に出力されるとき,出力最大幅は全ての参照の最大長まで考慮に入
れられます.このオプションが選択された場合,すなわち,参照が右の文脈の後
に出力されるとき,出力最大幅は参照が使用するスペースの量も,前にある隙間
も考慮に入れられません.
-A
--auto-reference
-A
と-r
の両方が
選択された場合,入力参照は読み込まれスキップされますが,自動的な参照は出
力時に利用され,それは入力参照に優先します.
-R
--right-side-refs
-R
が使用されていないとき,オプショ
ン-r
や-A
の影響で生成されるあらゆる参照は,右の文脈の後に,
出力行の右端に与えられます.デフォルト出力書式で,オプション-R
が
指定された場合,参照は,左の文脈の前に,それぞれの出力行の始めに代わりに
与えられます.それ以外のあらゆる出力書式に対し,-R
が選択されたと
きは常に,参照の幅が-w
で与えられた全体の出力幅に含まれない
という事実以外,オプション-R
はほとんど無視されます.
GNU拡張が利用不可能なときは,常にこのオプションは自動的に選択されます.
-F string
--flac-truncation=string
-S
が
選択されたのと同様に,現在の行や現在の文の始めや終りに向かって,理論的に
展開されます.しかし,許可される出力行幅の最大値は存在し,オプション
-w
で変更でき,それは様々な出力フィールドに対しスペースで更に分割
されます.現在の行に適するよう,その行の最初や終りまで拡張することができ
ないため,フィールドが切り詰める必要があるとき,切り詰めが発生します.デ
フォルトで,使用される文字列は単一のスラッシュで,-F /
のようにな
ります.
stringは1文字以上が可能で,-F ...
のようになります.また,
stringが空(-F ""
)となる特定の場合,切り詰めフラグは利用不可
能で,切り詰めマークはこの場合現われません.
ユーザの利便性の問題として,多くの通常の,C言語で見つかる,バックスペー
スされたエスケープ・シーケンスは認識され,ptx
自身によって,対応す
る文字に変換されます.
-M string
--macro-name=string
nroff
,troff
やTeXに適した出力を生成している間,
xx
の代わりに,使用する他のstringを選択します.
-O
--format=roff
nroff
やtroff
の処理に適した出力書式を選択します.それぞれの
出力行は以下のようになります.
.xx "tail" "before" "keyword_and_after" "head" "ref"
それで,出力の植字を処理するための,.xx
roffマクロを書くことが可
能になります.GNU拡張が利用不可能な場合,これはデフォルト出力です.オプ
ション-M
は,xx
を他のマクロ名に変更するために利用可能です.
この出力形式で,改行やタブのようなそれぞれの表示不可能な文字は,連続した
スペースを圧縮するという特別な試みを行わず,正確に1つのスペースに単に変
換されます.それぞれの引用文字:"は2重になるので,nroff
や
troff
で正しく処理されます.
-T
--format=tex
\xx {tail}{before}{keyword}{after}{head}{ref}
それで,出力の植字の処理するための\xx
定義を書くことが可能になりま
す.参照が生成されないとき,すなはち,オプション-A
もオプション
-r
も選択されていないとき,それぞれの\xx
の最後のパラメータ
が抑制されることに注意してください.オプション-M
は,xx
を他
のマクロ名に変更するために利用可能です.
この出力書式では,$,%,&,#そして_のよう
な,いくつかの特殊文字は,自動的にバックスラッシュで保護されます.弓カッ
コの{,}もバックスラッシュで保護されますが,数学モードを強
制するドル記号の組でも囲まれます.バックスラッシュ自身は
\backslash{}
の並びを生成します.曲折アクセント記号とティルデ分
音記号は,^\{ }
と~\{ }
の並びをそれぞれ生成します.その
他の基礎となる文字セットの分音文字は,適切なTeXの並びを可能な限り生成
します.改行とタブのようなその他の表示不可能な文字と,ASCIIではない
全ての他の文字は,連続したスペースを圧縮するという特別な試みを行わず,1
つのスペースに単に変換されます.これらの特殊文字をTeXで処理する改善方
法を知らせてください.
ptx
のGNU拡張このptx
のバージョンには,System V ptx
には存在しないいくつ
かの特徴があります.これらの拡張された特徴は,他のコマンドラインオプショ
ンで優先されない場合,-G
コマンドラインオプションを使用して抑制さ
れます.GNU拡張には,優先で元に戻すことができないものがあり,そのため,
GNU拡張を気にする場合,簡単な規則で-G
を避けるはずです.ここに,こ
のプログラムとSystem V ptx
の間の違いがあります.
ptx
は,1つ
のみファイルを読み込み,結果を標準出力に書き出すか,2番目のfileパ
ラメータがコマンドで与えられている場合は,そのfileに書き出します.
オプションで導入されない出力パラメータがあるということは,GNUができる限
り避ける全く危険な操作です.そのため,GNUとSystem Vの間の移植性のある
ptx
を使用するため,単一の入力ファイルで常に使用することに注意を払
い,常に標準出力で結果を期待するべきです.配置するものが-G
を受け
入れるptx
がインストールされていることが分かった場合,ptx
を
使用した製品でのptx
の呼び出しで,-G
オプションを自動的に配
置したいと思うかもしれません.
ptx
でのみ利用可能なオプションは,-b
,-f
,
-g
,-i
,-o
,-r
,-t
と-w
です.全
ての他のオプションはGNU拡張で,この列挙では繰り返しません.さらに,GNU拡
張が利用可能なとき,わずかに意味が異なるオプションもあり,以下で記述しま
す.
troff
やnroff
に対して書式化され
ません.それはむしろ,dumb端末に対する出力です.troff
や
nroff
の出力は,オプション-O
を通じて選択可能です.
-R
オプションが選択されない場合,最大の参照幅は出力行幅全体から引
いたものになります.GNU拡張が利用不可能な場合,参照の幅は出力行の幅の計
算で考慮されません.
ptx
は8ビット文字を受け入れず,いくつかの制御文字は削除され,チ
ルダ~は処分されます.
ptx
は,それぞれの行の最初の200文字の
み処理します.
ptx
を模倣しようとしますが,
このプログラムが完全に再現していない,わずかな配置不備もまだあります.
ptx
では許可されません.
cut
: 行の選択した部分の出力cut
は,それぞれの入力ファイルや,ファイルが与えられない場合や
-
のファイル名に対しては標準入力の,それぞれの行の選択された部分を
標準出力に書き出します.概要です.
cut [option]... [file]...
以下の表で,byte-list,character-listと,field-listは,
1つ以上の数字またはカンマで分けられた(ダッシュで分けられた2つの数字の)範
囲です.バイト,文字と,フィールドは,1で始まる番号がつきます.不完全な
範囲を与えることができます.-m
は1-m
を意味しま
す.n-
は,n
から行末やフィールドの終りまでを意
味します.
このプログラムは以下のオプションも受け入れます.Common options,も 参照してください.
-b byte-list
--bytes=byte-list
-c character-list
--characters=character-list
-b
と同じですが,国際化はそれを変更する可能性があります.タ
ブとバックスペースは他の文字と同様に扱われます.それらは1バイト使用しま
す.
-f field-list
--fields=field-list
-d input_delim_byte
--delimiter=input_delim_byte
-f
に対し,フィールドは,input_delim_byteの最初の文字により,
入力で分けられます(デフォルトはTABです).
-n
-s
--only-delimited
-f
に対し,フィールド分離文字を含まない列を出力しません.
--output-delimiter=output_delim_string
-f
に対し,出力フィールドは,output_delim_stringで分けられま
す.デフォルトは入力分離文字を使用します.
paste
: ファイルの行を統合しますpaste
は,与えられたそれぞれファイルの連続して対応している行から成
り立つ行を標準出力に書き出し,それはTAB文字で分けられています.-
のファイル名や,入力ファイルが与えられない場合,標準入力が使用されます.
概要です.
paste [option]... [file]...
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-s
--serial
-d delim-list
--delimiters delim-list
join
: 共通のフィールドで行を結合join
は,同一の結合したフィールドを持つそれぞれの入力行の組の行を
標準出力に書き出します.概要です.
join [option]... file1 file2
file1またはfile2は(両方ではなく)-
が可能で,標準入力を
意味します.file1とfile2は,結合したフィールド上で増加してい
る,原文通りの順番で既に保存されているべきで,それは,LC_COLLATE
ロ
ケールで指定された,対照の順序を使用します.-t
オプションが与えら
れていない場合,入力は,sort -b
で,結合フィールドの最初の空白を無
視して保存されているべきです.--ignore-case
オプションが与えられた
場合,行はsort -f
で,結合フィールドの文字の大文字小文字に関係なく
ソートされているべきです.
デフォルトは,以下の通りです.結合フィールドは,それぞれの行の最初のフィー ルドです.入力のフィールドは,1つ以上の空白で分かれていて,行の前の空白 は無視されます.出力のフィールドはスペースで分けられています.それぞれの 出力行は,結合フィールド,file1からの残りのフィールド,それから, file2の残りのフィールドから成り立ちます.
プログラムは,以下のオプションを受け入れます.Common options,も参 照してください.
-a file-number
1
または2
のいずれか)で組になって
いないそれぞれの行に対し,1行を通常の出力に追加して出力します.
-e string
-i
--ignore-case
sort -f
を使用してください.
-1 field
-j1 field
-2 field
-j2 field
-j field
-1 field -2 field
と同じです.
-o field-list...
0
,または,ファイル番
号のmが1
または2
で,nが正のフィールド番号となる
m.nの形式になります.
0
のフィールド指定は,結合フィールドを示します.ほとんどの場合,
0
フィールドの指定の機能は,対応する結合フィールドとなる,明示的な
m.nを用いて再現できます.しかし,(-a
または-v
オプショ
ンを用いて)組にならない行を出力するとき,両方のファイルで組にならない行
がある場合,field-listでm.nを用いて結合フィールドを指定する
方法はありません.join
にその機能を与えるため,POSIXは
0
フィールド指定の表記を考え出しました.
field-listの要素は,カンマまたは空白で分けられています.複数の
field-list引数で,単一の-o
オプションの後に与えることができ
ます.-o
で与えられる全てのリストの値は,一緒に連結されます.全て
の出力行は--a
や-v
オプションで出力されるものを含め-指定さ
れたfield-listを適用されます.
-t char
-v file-number
更に,GNU join
が1つの引数で呼び出された場合,オプション
--help
と--version
は認識されます.See Common options.
このコマンドは,個別に文字を処理します.
tr
: 文字の変換,圧縮,そして/または,削除概要です.
tr [option]... set1 [set2]
tr
は標準入力を標準出力にコピーし,そのとき以下の処理の一つを実行
します.
set1と(与えられている場合)set2引数は,文字の順序を持つ文字を
定義し,以下のset1とset2を参照します.これらの設定は,
tr
が処理する入力文字です.--complement
(-c
)オプショ
ンは,set1をその補語(set1にない全ての文字)に置換します.
set1とset2の引数の書式は,正規表現の書式に似ています.しかし 正規表現ではなく,文字のリストのみです.これらの文字列のほとんどの文字は 単にその文字自身を表すが,利便性のため,文字列には以下でリストアップされ た速記を含むことができます.そのうち,以下で注意するset1または set2のみでしか利用できないものもあります.
以下でリストアップされていない,文字が続くバックスラッシュは,エラーメッ セージを発生します.
\a
\b
\f
\n
\r
\t
\v
\ooo
\\
表記方法のm-n
は,mからnまで昇順に,全ての
文字に展開されます.mは,対照でnの前であるべきです.そうでな
い場合,結果としてエラーとなります.例としては,0-9
は
0123456789
と同じです.GNU tr
は,範囲を囲む角括弧を使用する
System V 構文をサポートしませんが,その書式で指定された変換は,
set1のカッコがset2のカッコと同じように対応する限り働き
ます.
set2での[c*n]
の表記は,文字cのn個の
コピーに展開されます.このため,[y*6]
はyyyyyy
と同じです.
set2での[c*]
の表記は,set2をset1と同じ長
さにするのに必要なだけ,cの多くのコピーに展開されます.nが
0
で始まる場合は8進数に,それ以外では10進数に解釈されます.
[:class:]
の表記は,(あらかじめ定義された)クラスclass
にある全ての文字に展開されます.文字は,特定の順序で展開されませんが,
upper
とlower
クラスは,昇順に展開されます.--delete
(-d
)と--squeeze-repeats
(-s
)オプションが両方与えら
れた場合,あらゆる文字クラスはset2で使用されるはずです.それ以外の
場合,文字クラスlower
とupper
は,set2に適用され,そし
てそれは,対応する(それぞれupper
とlower
の)文字クラスは
set1の位置に関連して同じものが指定されている場合のみです.こうする
ことで,大文字小文字の変換を指定します.クラス名は以下で与えられます.無
効なクラス名が与えられた場合,結果としてエラーとなります.
alnum
alpha
blank
cntrl
digit
graph
lower
print
punct
space
upper
xdigit
構文[=c=]
は,cと等価な文字の全てに,特定の順序を持た
ずに展開されます.等価なクラスは,英語以外のアルファベットをサポートする
目的で,比較的最近発明されました.しかし,それらの定義や内容を決定する標
準的な方法はなさそうです.それゆえ,GNU tr
では,完全には実装され
ていません.それぞれの文字の等価クラスは,その文字からのみ構成されていて,
特定の利用価値はありません.
set1とset2の両方が与えられ,--delete
(-d
)オプ
ションが与えられていない場合,tr
は変換を実行します.tr
は,
set1にある入力のぞれぞれの文字を,対応するset2の文字に変換し
ます.set1に無い文字は,そのまま変換されず通過します.set1の
文字が1回以上現われ,set2の対応する文字が全て同じではない場合,最
後の1つのみ使用されます.例えば,以下の2つのコマンドは等価です.
tr aaa xyz tr a z
tr
の一般的な使用法は,小文字を大文字に変換することです.これは多
くの方法で行うことができます.その3つを以下に書きます.
tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ tr a-z A-Z tr '[:lower:]' '[:upper:]'
tr
が変換を実行しているとき,set1とset2は,通常同じ長
さです.set1がset2より短い場合,set2の終りの余分な文字
は無視されます.
一方,set1をset2より大きくすることは移植性がありません.
POSIX.2は,その結果は未定義だと述べています.この場合,BSD
tr
は,set2をset2の最後文字で必要なだけ繰り返すことで
set1の長さに引き延ばします.System V tr
は,set1を
set2の長さに切り詰めます.
デフォルトで,GNU tr
はBSD tr
のようにこの状態を扱います.
--truncate-set1
(-t
)オプションが与えられた場合,GNU
tr
はSystem V tr
のようにこの状態を扱います.このオプション
は,変換以外の処理では無視されます.
この場合,System V tr
のように動作させると,比較的一般的なBSDの表
現は壊れます.
tr -cs A-Za-z0-9 '\012'
それは,全ての英数字を改行に変換する代わりに,(set1の補語の最初の 要素)ゼロバイトのみ変換されるためです.
--delete
(-d
)オプションのみ与えられたとき,tr
は,
set1にあるあらゆる入力文字を削除します.
--squeeze-repeats
(-s
)オプションのみ与えられたとき,
tr
は,set1にある,それぞれの入力の繰り返される文字の並びを,
その文字の単一の発生(訳注:1つの文字)に置換します.
--delete
と--squeeze-repeats
の両方が与えられた場合,
tr
は,最初にset1を用いて削除を実行し,set2を用いて残
りの文字から繰り返しを圧縮します.
--squeeze-repeats
オプションは,変換時にも利用でき,その場合,
tr
は,最初に変換を実行し,set2を用いて残りの文字から繰り返
しを圧縮します.
ここに,オプションの様々な組合せの表現例をいくつかあげます.
tr -d '\000'
tr -cs 'a-zA-Z0-9' '[\n*]'
tr -s '\n'
uniq
を-d
オプションで実行します.
#!/bin/sh cat "$@" \ | tr -s '[:punct:][:blank:]' '\n' \ | tr '[:upper:]' '[:lower:]' \ | uniq -d
環境変数POSIXLY_CORRECT
を設定すると,POSIX.2を厳密に遵守する
ため,以下の警告とエラーのメッセージをオフにします.それ以外の場合,以下
の診断が発生されます.
--delete
オプションが与えられているが,--squeeze-repeats
が
与えられておらず,set2が与えられているとき,GNU tr
は,
set2が使用されないため,デフォルトで使用方法のメッセージを出力し終
了します.POSIX指定は,この場合set2は無視されるはずだと述べて
います.黙って引数を無視するのは悪い考えです.
\400
は,8進数
の400の値が単一バイトに適さないので,実際には0
が後置された
\40
になります.
GNU tr
は,BSDやSystem Vとの完全な互換性を提供しません.例えば,
POSIXの概念[:alpha:]
,[=c=]
と,[c*10]
の解釈を
利用不可にすることはできません.また,GNU tr
は,ゼロバイトを保護
する方法を提供できない伝統的なUnixバージョンと異なり,ゼロバイトを自動的
に削除できません.
expand
: タブをスペースに変換expand
は,与えられたそれぞれのfile,または,与えられない場
合や-
のfileの場合は標準入力の内容を,タブ文字を適切な数のス
ペースに変換して,標準出力に書き出します.概要です.
expand [option]... [file]...
デフォルトで,expand
は全てのタブをスペースに変換します.それは全
ての出力でバックスペース文字を維持します.それらはタブ計算に対し,列の数
を減少させます.デフォルトの動作は-8
(タブをそれぞれ8列に設定する)
と同じです.
プログラムは,以下のオプションを受け入れます.Common options,も参 照してください.
-tab1[,tab2]...
-t tab1[,tab2]...
--tabs=tab1[,tab2]...
-t
や--tabs
オプションで指定された場合,それらは空白およびカ
ンマで分けられます.
-i
--initial
unexpand
: スペースをタブに変換するunexpand
は,与えられたそれぞれのfile,または与えられない場
合や-
のfileに対しては標準入力の内容を,2つ以上のスペースや
タブ文字の文字列を,必要とされる多くのスペースと同等の,続けることが可能
な多くのタブに変換しながら,内容を標準出力に書き出します.概要です.
unexpand [option]... [file]...
デフォルトで,unexpand
は,最初のスペースとタブ(前にあるものが全て
非スペース文字や非タブ文字となるもの)のみを,ぞれぞれの行で変換します.
それは,出力でバックスペース文字を維持します.タブの計算に対し,列の数を
少なくします.デフォルトで,タブは8列毎に設定されます.
プログラムは以下のオプションを受け入れます.Common options,も参照 してください.
-tab1[,tab2]...
-t tab1[,tab2]...
--tabs=tab1[,tab2]...
-t
や
--tabs
オプションで指定された場合,それらは空白とカンマで分けられ
ます.オプションは暗黙に-a
オプションを指定します.
-a
--all
この章はもともとLinux Journal,volume 1,number 2のWhat's GNU?で記載されました.それは,Arnold Robbinsによって書かれました.
who
command
cut
command
sort
command
uniq
command
今月のコラムは,GNUプロジェクトの周辺に関連するもので,そこでは,Linuxシ ステム上のGNUツールのいくつかと,それらの使われ方を記述します.それは正 に,プログラム開発と使用方法の"ソフトウェアツール"の哲学です.
ソフトウェアツールの哲学は,初期設計と(LinuxとGNUが本質的に複製している) Unixの開発では,重要で不可欠な概念でした.不幸にも,インターネットワーキ ングと派手なGUIの現在の出版では,それは王道からそれてしまっているように 感じられます.それは強力な多くの種類の問題を解決するための精神的なモデル を提供するので残念です.
多くの人は,ズボンのポケット(またはハンドバッグ)に,スイスのアーミーナイ フを持ち運んでいます.スイスのアーミーナイフは有用なハンディーツールです. それはいくつかのナイフの刃,ネジ回し,毛抜き,楊子,爪やすり,栓抜き,そ しておそらくその他のいくつかがあります.毎日の,単純な汎用のツールが必要 な小さな様々な仕事でおあつらえ向きです.
一方,経験豊富な大工は,スイスのアーミーナイフを使用して家を建てません. その代わりに,専門的な道具--のこぎり,かなづち,ネジ回し,かんな等がぎっ しり詰まった道具箱を持っています.そして,それぞれの道具を使用する時と場 所を知っています.ネジ回しを扱いながら,釘を打っているところを見たことは ないでしょう.
ベル研究所のUnix開発者は,全て専門的なプログラマと訓練されたコンピュータ 科学者です.彼らは,1つのプログラムのみを利用するため,1つで全てに適する プログラムをユーザに提示する一方,そのようなプログラムは以下のようになる ことが分かりました.
その代わりに,プログラムは専門的なツールであるべきだと感じました.要する に,それぞれのプログラムは,"1つのことを上手にすべきである"ということ です.それ以上でも以下でもありません.そのようなプログラムは,設計,作成 がより単純で,正しいものを得られます--ただ1つのことをするだけです.
更に彼らは,良いマシンでプログラムを一緒にハックするため,全体は部分の集 合より偉大なことに気付きました.いくつかの特別な目的のプログラムを組み合 わせることで,プログラムが設計された目的には無い特定の仕事を達成したり, 特定目的のプログラムを書く必要がある場合,より速く簡単にそれを達成したり できました.我々は,このコラムでこれ以上の,いくつかの(古い)例を見ます. (重要な追加点は,まだいくつかのアプリケーションがツールボックスに無い場 合,必要があれば回り道して,最初に必要なソフトウェアツールを構築すること です.)
希望としては,皆さんが,"標準入力","標準出力",そして"標準エラー出 力" の特定の概念で,シェルのI/Oリダイレクションの基本に慣れています.要 するに,"標準入力"はデータソースで,データがやってくるところです.デー タソースが,ディスクファイル,キーボード,磁気テープやパンチカードかどう か,プログラムは知る必要も注意する必要もありません.同様に,"標準出力" はデータシンクで,データが出て行くところです.プログラムはその場所を知る 必要も注意する必要もありません.標準入力を読み込み,データに何かを行い, それを送り続けるプログラムは,"フィルタ"と呼ばれ,それは水のパイプライ ンでのフィルタに似ているためです.
Unixシェルを用いた場合,データパイプラインを設定することは非常に簡単です.
program_to_create_data | filter1 | .... | filterN > final.pretty.data
我々は生データを作ることから始めます.それぞれのフィルタは,それがパイプ ラインから出てくるまで,いくつかの連続した変換をデータに適用し,それは望 ましい形式です.
これは素晴らしく,標準入力と標準出力に適しています.標準エラー出力は,動
作中どこに行きますか? まあ,上記のパイプラインfilter1
について考
えて見てください.データでエラーが発生した場合,何が生じるのでしょう?
エラーメッセージを標準出力に書き出す場合,それはfilter2
の入力のパ
イプラインの下に隠れ,ユーザーはおそらく見ることはありません.そのため,
プログラムはユーザに注意を促すため,エラーメッセージを送ることが可能な場
所が必要です.これは標準エラー出力で,画面から離れているプログラムの標準
出力をリダイレクトしてさえ,それは通常コンソールやウィンドウに連結してい
ます.
フィルタプログラムが一緒に動作するため,データの書式は合意されている必要
があります.最も簡単で最も容易な書式は,単なるテキストの行です.通常,
Unixデータファイルは,慣習でUnixの文献で"改行"と呼ばれる,ASCII
LF (Line Feed)文字で分けられた行を用いた,単なるバイトのストリーム
です.(これは,Cプログラマの場合は'\n'
です.)これは全ての伝統的な
フィルタプログラムで用いられる書式です.(多くのより早期のオペレーティン
グシステムは,バイナリデータを管理するため,手の込んだファシリティと特別
な目的を持つプログラムがありました.Unixは常にそのようなことから身をかわ
していて,哲学の下では,テキストエディタでデータを見たり編集したりするこ
とを単純に可能にする,最も簡単な方法です.)
OK,十分紹介しました.いくつかの道具をひと目見て,それから,興味深い方法 でそれらを一緒に束ねる方法を見ましょう.以下の議論では,これらの興味ある コマンドラインオプションを紹介するだけです.常に行うように,完全な話とす るために,システムドキュメントを再点検してください.
who
コマンド最初のプログラムはwho
コマンドです.単独では,それは現在ログインし
ているユーザのリストを生成します.私はシングルユーザシステムでこれを書い
ていますが,我々は複数の人々がログインしているふりをします.
$ who arnold console Jan 22 19:57 miriam ttyp0 Jan 23 14:19(:0.0) bill ttyp1 Jan 21 09:32(:0.0) arnold ttyp2 Jan 23 20:48(:0.0)
ここで,$
は通常のシェルプロンプトで,そこで私はwho
と入力し
ました.3人ログインしていて,私は2回ログインしてます.伝統的なUnixシステ
ムでは,ユーザ名は8文字以上の長さはありません.このわずかな平凡なビット
は後で有用になります.who
の出力は良いのですが,データは余り面白く
ありません.
cut
コマンド次に我々が見るプログラムはcut
コマンドです.このプログラムは,入力
データの列やフィールドを切り取ります.例えば,我々はそれを用いて,
/etc/passwd
ファイルからログイン名とフルネームのみを出力させること
ができます./etc/passwd
ファイルは,7つのフィールドがあり,コロン
で分かれています.
arnold:xyzzy:2076:10:Arnold D. Robbins:/home/arnold:/bin/ksh
1番目と5番目のフィールドを得るため,以下のようにcut
を使用します.
$ cut -d: -f1,5 /etc/passwd root:Operator ... arnold:Arnold D. Robbins miriam:Miriam A. Robbins ...
-c
オプションを用いた場合,cut
は,入力行の指定した文字(例え
ば,列)を切り出します.このコマンドは,データのフィルタリングに役立ちそ
うです.
sort
コマンド次に見るのはsort
コマンドです.これはUnix形式のシステムで最も強力
なコマンドの1つです.自分で良く利用していると思うのは,おしゃれなデータ
の配管を設定している時です.sort
コマンドは,コマンドラインで指名
されたそれぞれのファイルを読み込みソートします.それはソートされたデータ
を統合し,標準出力に書き出します.それはファイルがコマンドラインで与えら
れない場合,標準入力から読み込みます(このため,フィルタになります).ソー
トは,順序を正しくするとき文字を基本としたり,ユーザが供給する基準の順番
を基本としたりします.
uniq
コマンド(少なくとも今のところ)最後に,我々はuniq
プログラムを見ます.デー
タをソートするとき,重複行,すなわち同一行でよく終ります.通常,それぞれ
の行に1つのインスタンスが必要です.これはuniq
を用いる場所です.
uniq
はその標準入力から読み込み,それはソートされてることを期待し
ます.それは重複行の1つのコピーのみを出力します.それにはいくつかのオプ
ションがあります.後に,我々は-c
オプションを使用し,それはそれぞ
れユニークな行を出力し,入力で行が発生した回数の数えたものを前置します.
さて,これが多数のユーザがログインしている大きなBBSシステムだと考えましょ う.管理者はシスオペに,ログインしているユーザのソートされたリストを生成 するプログラムを書かせたいとします.更に,ユーザが複数回ログインしていて も,彼または彼女の名前を出力に1度しか表示させないものとします.
シスオペはシステムドキュメントを持って席に付き,これを行うCプログラムを 書いたはずです.それはおそらく,200行のコードを書いて,テストして,デバッ グするため,2時間かけているでしょう.しかし,ソフトウェアツールボックス を知っている場合,シスオペは代わりに,ログインしているユーザのリストを生 成することから始めることができます.
$ who | cut -c1-8 arnold miriam bill arnold
次に,リストをソートします.
$ who | cut -c1-8 | sort arnold arnold bill miriam
終りに,重複を取り除くため,ソートされたリストをuniq
に通します.
$ who | cut -c1-8 | sort | uniq arnold bill miriam
sort
コマンドには,実際は,uniq
を行う-u
オプションが
あります.しかし,uniq
は,sort -u
で代用できない他のユーザ
のためです.
シスオペは,このパイプラインをシェルスクリプトに置き,システムの全てのユー ザが利用可能にしました.
# cat > /usr/local/bin/listusers who | cut -c1-8 | sort | uniq ^D # chmod +x /usr/local/bin/listusers
ここで注意すべき主な点が4つあります.最初に,4つのプログラムのみのコマン ドラインで,シスオペは仕事に費す2時間を節約することができました.さらに, シェルパイプラインはCプログラムが行うのと同じ効果があり,それはプログラ マの時間に関してはるかに効果的です.人々の時間はコンピュータの時間よりも はるかに高価で,現在の"全てのことをする十分な時間が無い"社会では,プロ グラマの時間の2時間を節約することは,並々ならぬ目ざましい成果です.
2番目に,ツールの組み合わせで,個別のプログラマの著者が想像してい なかった特定の目的の仕事をすることが可能だということを強調することも重要 です.
3番目に,我々がここで行ったように,ステージ内ででパイプラインを組み上げ ることも価値があります.これで,パイプラインのそれぞれのステージでのデー タを見ることが可能になり,それは,これらのツールを全く正しく使用している ことの確信を得る助けになります.
最後に,シェルスクリプトでパイプラインを組み上げることで,他のユーザがそ のコマンドを使用することができ,それらを設定したおしゃれな配管を覚える必 要がありません.それを実行する方法という意味では,シェルスクリプトとコン パイルされたプログラムは区別できません.
ここまでの準備運動の後で,我々は2つの追加のより複雑なパイプラインを見ま す.そのため,我々が2つのツールをさらに紹介する必要があります.
最初はtr
コマンドで,それは"transliterate(変換)"を意味します.
tr
コマンドは,文字対文字を基本に,文字を変換する作用があります.
通常,それは大文字を小文字に割り当てることに使用されます.
$ echo ThIs ExAmPlE HaS MIXED case! | tr '[A-Z]' '[a-z]' this example has mixed case!
重要ないくつかのオプションがあります.
-c
-d
-s
我々は,一度に3つの全てのオプションを使用します.
我々が見る,もう1つのコマンドはcomm
です.comm
コマンドは,2
つのソートされた入力ファイルを入力データとし,ファイルの行を3列に出力し
ます.出力列は最初のファイルのユニークなデータ行.2番目のファイルのユニー
クなデータ行,そして,両方に共通なデータ行です.-1
,-2
と
-3
のコマンドラインオプションは,対応する列を削除します.(これは直
観的ではなく,慣れるのに少しかかります.)例えば,以下のようにします.
$ cat f1 11111 22222 33333 44444 $ cat f2 00000 22222 33333 55555 $ comm f1 f2 00000 11111 22222 33333 44444 55555
ファイル名としての単一のダッシュは,通常のファイルの代わりに標準入力から
読みとるよう,comm
に伝えます.
さて,我々はおしゃれなパイプラインを構築する準備ができました.最初の応用 は,単語の頻度カウンタです.これは,著者が特定の単語を過度に使用している かどうかを決定する助けとなります.
最初のステップは,入力ファイルの全ての文字の大文字小文字をどちらか1つに 変換することです."The"と"the"は数えているときは同じ単語です.
$ tr '[A-Z]' '[a-z]' < whats.gnu | ...
次のステップは,句読点をを取り除くことです.引用された単語と引用されてい ない単語は,同一に扱われるべきです.句読点を片付ける最も簡単な方法です.
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' | ...
2番目のtr
コマンドは,リストアップされた文字の補集合を処理し,それ
は全ての文字,数字,アンダースコアと空白です.\012
は改行を表現し
ます.それはそのまま残す必要があります.(ASCIIタブ文字も,生成され
たスクリプトでは追加として含まれるべきです.)
この時点で,我々は,空白スペースで分けられた単語からなるデータを持ってい ます.単語は英数文字(とアンダースコア)のみ含みます.次のステップは,1行 に1単語となるように,データを別々に分けます.これは数える処理をより容易 にするためで,まもなく見ることができます.
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' | > tr -s '[ ]' '\012' | ...
このコマンドは空白を改行に切替えます.-s
オプションは,出力の複数
の改行文字を1つに圧縮します.これは空白行を避けたいとき助かります.
(>
はシェルの"2番目のプロンプト"を意味します.これは,全てのコマ
ンドを入力し終えていないことに注意させるとき,シェルが出力するものです.)
我々は今,1行に1単語で,句読点が無く,全て大文字小文字どちらかだけのデー タを持っています.我々はそれぞれの単語を数える準備ができました.
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' | > tr -s '[ ]' '\012' | sort | uniq -c | ...
この時点で,データは以下のようになります.
60 a 2 able 6 about 1 above 2 accomplish 1 acquire 1 actually 2 additional
出力は単語でソートされていて,総数ではありません! 我々が欲しいのは,最
も頻繁に使用される最初のものです.幸い,これは簡単に達成でき,2つの
sort
オプションの助けを借ります.
-n
-r
最終的なパイプラインはこのようになります.
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' | > tr -s '[ ]' '\012' | sort | uniq -c | sort -nr 156 the 60 a 58 to 51 of 51 and ...
やれやれ! それは大量の要約です.まだ同じ原則は適用されます.6つのコマン ド2行で(本当は利便性のため長いものを分けたものです),我々は興味深く便利 なことを行うプログラムを作成し,それは,Cプログラムで同じことをするもの を書くよりはるかに短い時間でした.
上記のパイプラインへのちょっとした変更で,単純なスペルチェッカーを与える
ことができます.単語を正しく綴っているかどうかを決定するために行う必要が
あることは,辞書で調べることです.それが無い場合,可能性としては綴りが正
しくないということです.そのため,我々は辞書が必要です.Slackware Linux
配布物を持っている場合,ファイル/usr/lib/ispell/ispell.words
があ
り,それはソートされていて,38,400語の辞書です.
さて,我々のファイルと辞書をいかにして比較するのでしょう? 以前に我々は, ソートされた,1行に1単語の単語リストを生成しました.
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' | > tr -s '[ ]' '\012' | sort -u | ...
さて,必要なことは辞書に無い単語リストです.ここが,comm
コ
マンドを用いる場所です.
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' | > tr -s '[ ]' '\012' | sort -u | > comm -23 - /usr/lib/ispell/ispell.words
-2
と-3
オプションは,辞書(2番目のファイル)のみにある行と,
両方のファイルにある行を削除します.最初のファイル(我々の単語ストリーム
の標準入力)のみにある行は,辞書にはありません.これらは綴りエラーに対す
る好ましい候補です.このパイプラインは,Unixでのスペルチェッカー製品とし
て,最初に発生しました.
ちょっと記述する価値のある,その他のツールもあります.
grep
egrep
grep
に似ていますが,より強力な正規表現を用います.
wc
tee
sed
awk
ソフトウェアツールの哲学は,以下の短い助言も含んでいます."難しい部分は 他人にさせろ".これは,必要なほとんどのものは与えられるものであり,必要 な形式にするまでの方法が残っていることを意味します.
要約します.
ここで書いている我々が議論してきた全てのプログラムは,
/pub/gnu/textutils-1.9.tar.gz
として,prep.ai.mit.edu
からの
匿名ftp
で利用可能です.2
私がこのコラムで表現したものに新しいものはありません.ソフトウェアツール
の哲学は,最初に,Brian KernighanとP.J. PlaugerによるSoftware
Toolsの本(Addison-Wesley, ISBN 0-201-03669-X)で紹介されました.この本は,
ソフトウェアツールの書き方と使用法を表しています.それは1976年に書かれ,
ratfor
(RATional FORtran)という名のFORTRANに対するプリプロセッサ
を使用しています.当時,Cは現在ほどubiquitousではなく,FORTRANはそうでし
た.最後の章で,ratfor
をFORTRANにするプロセッサを提示していて,
ratfor
で書かれています.ratfor
はCに非常に似ています.Cを知っ
ている場合,コードを追いかけるのに問題ないでしょう.
1981年に本は更新され,Software Tools in Pascal (Addison-Wesley, ISBN 0-201-10342-7)として利用可能になりました.両方の本は印刷されていて, プログラマにとっては読む価値があります.それらは,確かにプログラミングを 見る方法で,主な変化をなし得ました.
初めに,両方の本のプログラムはAddison-Wesleyから(9トラックテープで)利用
可能でした.不幸にも,これはもはや利用できず,Internetの周辺でコピーがあ
るかも知れません.何年もの間,活発なSoftware Tools Users Groupがあり,そ
のメンバーは元のratfor
プログラムを,FORTRANコンピュータを持つ全て
のコンピュータに本質的に移植しました.グループの人気は,Unixが大学を越え
て広がり始めたので,80年代半ばで衰えました.
GNUコードとその他のUnixプログラムのクローンの現在の増殖で,これらのプロ グラムは,現在ほとんど注目されません.現在のCのバージョンはより効果的で, これらのプログラムが行うより多くのことを行います.にもかかわらず,良いプ ログラミングスタイルの博覧会と,still-valuableの哲学に対する福音として, これらの本は比べるものが無く,私は高く推薦します.
謝辞:私はこのコラムのレビューに対し,ベル研究所のBrian Kernighanと,オ リジナルのソフトウェアToolsmithに深く感謝したいと思います.
+count
: tail invocation
+first_page[:last_page]
: pr invocation
+n
: uniq invocation
--across
: pr invocation
--address-radix
: od invocation
--all
: unexpand invocation
--all-repeated
: uniq invocation
--before
: tac invocation
--binary
: md5sum invocation, cat invocation
--body-numbering
: nl invocation
--bytes
: cut invocation, wc invocation, split invocation, tail invocation, head invocation, fold invocation
--characters
: cut invocation
--chars
: wc invocation
--check-chars
: uniq invocation
--columns
: pr invocation
--count
: uniq invocation
--crown-margin
: fmt invocation
--delimiter
: cut invocation
--delimiters
: paste invocation
--digits
: csplit invocation
--double-space
: pr invocation
--elide-empty-files
: csplit invocation
--expand-tabs
: pr invocation
--fields
: cut invocation
--first-line-number
: pr invocation
--follow
: tail invocation
--footer-numbering
: nl invocation
--form-feed
: pr invocation
--format
: od invocation
--header
: pr invocation
--header-numbering
: nl invocation
--help
: Common options
--ignore-case
: join invocation, uniq invocation
--indent
: pr invocation
--initial
: expand invocation
--join-blank-lines
: nl invocation
--join-lines
: pr invocation
--keep-files
: csplit invocation
--length
: pr invocation
--line-bytes
: split invocation
--lines
: wc invocation, split invocation, tail invocation, head invocation
--max-consecutive-size-changes
: tail invocation
--max-line-length
: wc invocation
--max-unchanged-stats
: tail invocation
--merge
: pr invocation
--no-file-warnings
: pr invocation
--no-renumber
: nl invocation
--number
: cat invocation
--number-format
: nl invocation
--number-lines
: pr invocation
--number-nonblank
: cat invocation
--number-separator
: nl invocation
--number-width
: nl invocation
--omit-header
: pr invocation
--omit-pagination
: pr invocation
--only-delimited
: cut invocation
--output-delimiter
: cut invocation
--output-duplicates
: od invocation
--output-tabs
: pr invocation
--page-increment
: nl invocation
--page_width
: pr invocation
--pages
: pr invocation
--pid
: tail invocation
--prefix
: csplit invocation
--quiet
: csplit invocation, tail invocation, head invocation
--read-bytes
: od invocation
--regex
: tac invocation
--repeated
: uniq invocation
--retry
: tail invocation
--section-delimiter
: nl invocation
--sep-string
: pr invocation
--separator
: pr invocation, tac invocation
--serial
: paste invocation
--show-all
: cat invocation
--show-control-chars
: pr invocation
--show-ends
: cat invocation
--show-nonprinting
: pr invocation, cat invocation
--show-tabs
: cat invocation
--silent
: csplit invocation, tail invocation, head invocation
--skip-bytes
: od invocation
--skip-chars
: uniq invocation
--skip-fields
: uniq invocation
--sleep-interval
: tail invocation
--spaces
: fold invocation
--split-only
: fmt invocation
--squeeze-blank
: cat invocation
--starting-line-number
: nl invocation
--status
: md5sum invocation
--strings
: od invocation
--suffix
: csplit invocation
--sysv
: sum invocation
--tabs
: unexpand invocation, expand invocation
--tagged-paragraph
: fmt invocation
--text
: md5sum invocation
--traditional
: od invocation
--uniform-spacing
: fmt invocation
--unique
: uniq invocation
--verbose
: split invocation, tail invocation, head invocation
--version
: Common options
--warn
: md5sum invocation
--width
: fold invocation, pr invocation, fmt invocation, od invocation
--words
: wc invocation
-1
: join invocation, comm invocation
-2
: join invocation, comm invocation
-3
: comm invocation
-a
: unexpand invocation, join invocation, pr invocation, od invocation
-A
: od invocation, cat invocation
-b
: cut invocation, sort invocation, md5sum invocation, csplit invocation, split invocation, fold invocation, od invocation, nl invocation, tac invocation, cat invocation
-B
: cat invocation
-c
: cut invocation, uniq invocation, sort invocation, wc invocation
-C
: split invocation
-c
: tail invocation, head invocation, pr invocation, fmt invocation, od invocation
-column
: pr invocation
-count
: tail invocation, head invocation
-d
: paste invocation, cut invocation
-D
: uniq invocation
-d
: uniq invocation, sort invocation, pr invocation, od invocation, nl invocation
-e
: join invocation, pr invocation
-E
: cat invocation
-e
: cat invocation
-f
: cut invocation, uniq invocation, sort invocation, csplit invocation, tail invocation, pr invocation
-F
: pr invocation
-f
: od invocation, nl invocation
-g
: sort invocation
-h
: pr invocation, od invocation, nl invocation
-i
: expand invocation, join invocation, uniq invocation, sort invocation, pr invocation, od invocation, nl invocation
-J
: pr invocation
-j
: od invocation
-j1
: join invocation
-j2
: join invocation
-k
: sort invocation, csplit invocation
-L
: wc invocation
-l
: wc invocation, split invocation, pr invocation, od invocation, nl invocation
-M
: sort invocation
-m
: sort invocation, pr invocation
-n
: cut invocation
-n
: uniq invocation
-n
: sort invocation, csplit invocation, tail invocation, head invocation
-N
: pr invocation
-n
: pr invocation
-N
: od invocation
-n
: nl invocation, cat invocation
-o
: sort invocation, pr invocation, od invocation
-p
: nl invocation
-q
: csplit invocation, tail invocation, head invocation
-r
: sort invocation, sum invocation, pr invocation, tac invocation
-s
: paste invocation, cut invocation, uniq invocation, sum invocation, csplit invocation, fold invocation
-S
: pr invocation
-s
: pr invocation, fmt invocation, od invocation, nl invocation, tac invocation, cat invocation
-t
: unexpand invocation, expand invocation, sort invocation, md5sum invocation
-T
: pr invocation
-t
: pr invocation, fmt invocation, od invocation
-T
: cat invocation
-t
: cat invocation
-tab
: unexpand invocation, expand invocation
-u
: uniq invocation, sort invocation, fmt invocation, cat invocation
-v
: tail invocation, head invocation, pr invocation, od invocation, nl invocation, cat invocation
-w
: uniq invocation, md5sum invocation, wc invocation, fold invocation
-W
: pr invocation
-w
: pr invocation, fmt invocation, od invocation, nl invocation
-width
: fmt invocation
-x
: od invocation
-z
: sort invocation, csplit invocation
alnum
: Character sets
alpha
: Character sets
blank
: Character sets
sum
: sum invocation
tail
: tail invocation
cat
: cat invocation
cksum
: cksum invocation
cntrl
: Character sets
comm
: comm invocation
csplit
: csplit invocation
cut
: cut invocation
descriptor
follow option
: tail invocation
digit
: Character sets
expand
: expand invocation
fmt
: fmt invocation
fold
: fold invocation
graph
: Character sets
head
: head invocation
join
: join invocation
LC_COLLATE
: join invocation, comm invocation, sort invocation
LC_CTYPE
: sort invocation
LC_NUMERIC
: sort invocation
LC_TIME
: sort invocation
ln
format for nl
: nl invocation
lower
: Character sets
md5sum
: md5sum invocation
name
follow option
: tail invocation
nl
: nl invocation
od
: od invocation
paste
: paste invocation
POSIXLY_CORRECT
: Warnings in tr
pr
: pr invocation
print
: Character sets
ptx
: ptx invocation
punct
: Character sets
rn
format for nl
: nl invocation
rz
format for nl
: nl invocation
sort
: sort invocation
space
: Character sets
split
: split invocation
sum
: sum invocation
sum
: sum invocation
tac
: tac invocation
tail
: tail invocation
TMPDIR
: sort invocation
tr
: tr invocation
tsort
: tsort invocation
unexpand
: unexpand invocation
uniq
: uniq invocation
upper
: Character sets
wc
: wc invocation
xdigit
: Character sets
JMでは,行間に空行を置くとなっていま す.
Version 1.9が,このコラムを書い
ているときの現在のものです.現在のバージョンは,近くのGNUアーカイブを調
査してください.主なGNU FTPサイトは,現在ftp.gnu.org
です.