OSDN Git Service

util-linux: update getopt.1 and hexdump.1 to 2.34.
authorcyoichi <cyoichi@users.osdn.me>
Wed, 22 Apr 2020 00:07:55 +0000 (09:07 +0900)
committercyoichi <cyoichi@users.osdn.me>
Wed, 22 Apr 2020 00:07:55 +0000 (09:07 +0900)
modified:   manual/util-linux/ChangeLog
new file:   manual/util-linux/README.po4a
new file:   manual/util-linux/po4a/man1/getopt-ja.patch
new file:   manual/util-linux/po4a/man1/getopt-ja.po
new file:   manual/util-linux/po4a/man1/hexdump-ja.patch
new file:   manual/util-linux/po4a/man1/hexdump-ja.po
modified:   manual/util-linux/release/man1/getopt.1
modified:   manual/util-linux/release/man1/hexdump.1
modified:   manual/util-linux/translation_list

manual/util-linux/ChangeLog
manual/util-linux/README.po4a [new file with mode: 0644]
manual/util-linux/po4a/man1/getopt-ja.patch [new file with mode: 0644]
manual/util-linux/po4a/man1/getopt-ja.po [new file with mode: 0644]
manual/util-linux/po4a/man1/hexdump-ja.patch [new file with mode: 0644]
manual/util-linux/po4a/man1/hexdump-ja.po [new file with mode: 0644]
manual/util-linux/release/man1/getopt.1
manual/util-linux/release/man1/hexdump.1
manual/util-linux/translation_list

index a2f9e75..51d8a86 100644 (file)
@@ -1,13 +1,19 @@
+Tue Apr 21 15:24:43 JST 2020 Chonan Yoichi <cyoichi@maple.ocn.ne.jp>
+
+       * release/man1/{getopt.1,hexdump.1}:
+       util-linux 2.34 に更新。
+
 Sat Mar 14 11:29:40 JST 2020 Chonan Yoichi <cyoichi@maple.ocn.ne.jp>
 
        * release/man1/{cal.1,column.1}:
        util-unix 2.34 へ更新。
        翻訳者は佐藤裕一と長南洋一。
        po4a を採用することにした。
+       従って po ファイルのあるものは、draft/ 以下を使用しない。
 
 Fri Nov 14 01:58:59 2008  Akihiro MOTOKI  <amotoki@dd.iij4u.or.jp>
 
-       * draft/man8/renice.8, release/man8/renice.8: 
+       * draft/man8/renice.8, release/man8/renice.8:
        HTML 変換後のページでページ名がなくなってしまうので、
        履歴の節の「.Nm」を「.Nm renice」のようにページ名付きに変更。
 
diff --git a/manual/util-linux/README.po4a b/manual/util-linux/README.po4a
new file mode 100644 (file)
index 0000000..18f6c5a
--- /dev/null
@@ -0,0 +1,20 @@
+一般に aaa.1 などの翻訳マニュアルは、
+
+$ po4a-translate -f man -m ../../original/man1/aaa.1 -p aaa.po -l aaa.1 -v
+$ patch -p0 <aaa.patch
+
+とすれば作れるが、以下の例外がある。
+
+○ getopt.1
+   getopt.1 では、po4a-translate するとき、-o unknown_macros=untranslated
+   というオプションを付ける必要があった。つまり、以下のようにする。
+     
+     $ po4a-translate -f man -m ../../original/man1/getopt.1 \ 
+     -p getopt.po -l getopt.1 -o unknown_macros=untranslated -v
+     $ patch -p0 <getopt.patch
+
+
+   "unknown_macros" については、"man Locale::Po4a::Man" を参照。
+   po4a-gettextize のときもこのオプションが必要だったので、
+   po4a-updatepo でも多分必要だろう。
+
diff --git a/manual/util-linux/po4a/man1/getopt-ja.patch b/manual/util-linux/po4a/man1/getopt-ja.patch
new file mode 100644 (file)
index 0000000..8224787
--- /dev/null
@@ -0,0 +1,121 @@
+--- getopt.1.orig      2020-04-15 17:31:10.836314658 +0900
++++ getopt.1   2020-04-15 17:35:32.186933252 +0900
+@@ -1,8 +1,45 @@
++.\" getopt.c - Enhanced implementation of BSD getopt(1)
++.\" Copyright (c) 1997-2014 Frodo Looijaard <frodo@frodo.looijaard.name>
++.\"
++.\" This program is free software; you can redistribute it and/or modify
++.\" it under the terms of the GNU General Public License as published by
++.\" the Free Software Foundation; either version 2 of the License, or
++.\" (at your option) any later version.
++.\"
++.\" This program is distributed in the hope that it will be useful,
++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++.\" GNU General Public License for more details.
++.\"
++.\" You should have received a copy of the GNU General Public License along
++.\" with this program; if not, write to the Free Software Foundation, Inc.,
++.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++.\"
+ .\"*******************************************************************
+ .\"
+ .\" This file was generated with po4a. Translate the source file.
+ .\"
+ .\"*******************************************************************
++.\"
++.\" The original version of this translation was contributed 
++.\" to Linux JM project from NetBSD jman proj.
++.\"
++.\" The copyright for the modified parts of the translation blongs to us
++.\" with Linux JM project.
++.\"
++.\" Japanese Version Copyright for the modified parts (c) 2001-2020 Yuichi SATO
++.\"   and 2020 Yoichi Chonan,
++.\"         all rights reserved.
++.\" Translated Tue 11 Jan 1994
++.\"         by NetBSD jman proj. <jman@spa.is.uec.ac.jp>
++.\" Updated Sun Jan 14 04:46:37 JST 2001
++.\"         by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
++.\" Updated & Modified Sun Mar  2 15:11:49 JST 2003
++.\"         by Yuichi SATO <ysato444@yahoo.co.jp>
++.\" Updated & Modified (util-linux 2.34) Tue Apr 14 12:34:43 JST 2020
++.\"         by Yuichi SATO <ysato444@ybb.ne.jp>
++.\"         and Yoichi Chonan <cyoichi@maple.ocn.ne.jp>
++.\"
+ .TH GETOPT 1 "December 2014" util\-linux "User Commands"
+ .SH 名前
+ getopt \- コマンドのオプションを解析する (強化版)
+@@ -32,6 +69,11 @@
+ 番目の部分の最初のパラメータが、解析の対象となるショートオプションを
+ 1 つにまとめたショートオプションズ文字列 (すなわち \fIoptsting\fP) として使用される
+ (訳注: これは 2 番目の書式のことである)。
++.IP "[\fB訳注\fP]"
++第 3 の書式で、解析の対象になるパラメータをオプションから始めるときは、その前に
++\&'\fB\-\-\fP' を置かなければならないことに気を付けていただきたい。
++そうしないと、\fBgetopt\fP 自体のオプションと誤解されることになる。
++解析の対象をファイル名などから始めるときは、'\fB\-\-\fP' を置かなくてもよい。
+ .PP
+ 環境変数 \fBGETOPT_COMPATIBLE\fP
+ が設定されている場合や、最初のパラメータがオプションではない場合 (すなわち、'\fB\-\fP'
+@@ -125,6 +167,29 @@
+ で対応するように、気を付けて指定しなければならない
+ (「\fB用例\fP」セクションを参照)。すべての解析は、GNU \fBgetopt\fP(3)
+ のルーティンによって行われる。
++.IP "[\fB訳注\fP]"
++\fBgetopt\fP の使い方の簡単な例を挙げる。
++たとえば、シェル関数やシェルスクリプト中に次のように書く。
++.sp
++.nf
++    PARAM=$(getopt -o 'a:b::c' -- "$@")
++    eval set -- "$PARAM"
++.fi
++.sp
++このようにして、シェル関数やスクリプトに渡された引き数群を、位置パラメータを利用して、
++どれがオプションで、どれがそのオプション引き数、どれがそれ以外か、
++わかりやすいように、処理しやすいように再構成するわけである。
++詳しくは、「\fB出力\fP」セクションや、
++「\fB用例\fP」で述べているスクリプトの見本を参照していただきたい。
++.sp
++「シェル関数を呼んだときに渡す各パラメータは、\fBgetopt\fP
++のパラメータリスト中のパラメータと 1 対 1
++で対応するように、気を付けて指定しなければならない」というのは、
++シェル関数やシェルスクリプトに渡すパラメータでも、
++それが空白などを含むようならクォートしなければならないのはもちろん、以下で説明するような
++\fBgetopt\fP コマンドのパラメータの書式にも従っていなければならないということである。
++たとえば、引き数が任意のショートオプション \fB\-b\fP
++に引き数を指定する場合は、\fB\-bXXX\fP などと、間に空白を置かずに指定しなければならない。
+ .PP
+ パラメータ群は左から右へ解析される。各パラメータは、ショートオプション、ロングオプション、
+ オプションの引き数、オプションとは無関係なパラメータに分割分類される。
+@@ -287,10 +352,30 @@
+ 関数は、引き数が任意のロングオプションが、空の任意引き数を渡された場合でも、解析できる
+ (だが、ショートオプションについては、それができない)。この \fBgetopt\fP(1)
+ コマンドは、空の任意引き数を、引き数が存在しないかのように処理している。
++.IP "[\fB訳注\fP]"
++詳しく言うと、\fBgetopt\fP(3) (\fBgetopt_long\fP(3)) 関数は、
++引き数が任意のロングオプションに引数がない場合と、空の引き数を渡された場合とを区別している。
++しかし、ショートオプションについては、その区別ができない。
++.sp
++この \fBgetopt\fP(1) コマンドの動作について言うと、第 2、第 3
++の書式では、ロングオプション、ショートオプションを問わず、
++引き数が任意のオプションに引き数が存在しない場合も、引き数が空文字列である場合も、
++オプションの引き数として空文字列を出力する。
++また、第 1 の書式では、引き数が任意のオプションに引き数が存在しない場合も、
++引き数が空文字列の場合も、そのオプションの引き数はまったく出力されない。
++「\fB出力\fP」セクションのショートオプションの説明を参照していただきたい。
++.sp
++要するに、この \fBgetopt\fP コマンドでは、引き数が任意のオプションについて、
++引き数が存在しない場合と引き数が空文字列である場合の区別がまったくないのである。
++だから、バグと言っても、不具合ということではなく、このコマンドと
++\fBgetopt\fP(3) 関数の仕様が微妙に違うことを言っているのだろうと思う。
+ .PP
+ ショートオプションを全く使いたくない場合の \fBgetopt\fP
+ コマンドの構文は、あまり直感的ではない
+ (ショートオプションズ文字列を明示的に空文字列にしなければならないのだ)。
++.IP "[\fB訳注\fP]"
++すなわち、\fBgetopt \-o '' \-\-longoptions ...\fP
++のように使用しなければならない。
+ .SH 作者
+ .MT frodo@frodo.looijaard.name
+ Frodo Looijaard
diff --git a/manual/util-linux/po4a/man1/getopt-ja.po b/manual/util-linux/po4a/man1/getopt-ja.po
new file mode 100644 (file)
index 0000000..a933fcf
--- /dev/null
@@ -0,0 +1,885 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2019-12-08 15:44+0900\n"
+"PO-Revision-Date: 2020-04-15 20:55+0900\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Linux JM project <linuxjm-discuss@lists.osdn.me>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: getopt.man:1
+#, no-wrap
+msgid "GETOPT"
+msgstr "GETOPT"
+
+#. type: TH
+#: getopt.man:1
+#, no-wrap
+msgid "December 2014"
+msgstr "December 2014"
+
+#. type: TH
+#: getopt.man:1
+#, no-wrap
+msgid "util-linux"
+msgstr "util-linux"
+
+#. type: TH
+#: getopt.man:1
+#, no-wrap
+msgid "User Commands"
+msgstr "User Commands"
+
+#. type: SH
+#: getopt.man:2
+#, no-wrap
+msgid "NAME"
+msgstr "名前"
+
+#. type: Plain text
+#: getopt.man:4
+msgid "getopt - parse command options (enhanced)"
+msgstr "getopt - コマンドのオプションを解析する (強化版)"
+
+#. type: SH
+#: getopt.man:4
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "書式"
+
+#. type: Plain text
+#: getopt.man:7
+msgid "B<getopt> I<optstring parameters>"
+msgstr "B<getopt> I<optstring parameters>"
+
+#. type: Plain text
+#: getopt.man:12
+msgid "B<getopt> [options] [B<-->] I<optstring parameters>"
+msgstr "B<getopt> [options] [B<-->] I<optstring parameters>"
+
+#. type: Plain text
+#: getopt.man:20
+msgid ""
+"B<getopt> [options] B<-o>|B<--options> I<optstring> [options] [B<-->] "
+"I<parameters>"
+msgstr ""
+"B<getopt> [options] B<-o>|B<--options> I<optstring> [options] [B<-->] "
+"I<parameters>"
+
+#. type: SH
+#: getopt.man:20
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "説明"
+
+#. type: Plain text
+#: getopt.man:29
+msgid ""
+"B<getopt> is used to break up (I<parse>)  options in command lines for easy "
+"parsing by shell procedures, and to check for valid options.  It uses the "
+"E<.SM GNU> B<getopt>(3)  routines to do this."
+msgstr ""
+"B<getopt> を使えば、コマンドラインのオプションを分解 (I<構文解析>) して、\n"
+"シェル上の処理による解析作業を容易にしたり、\n"
+"オプションが有効かどうかをチェックしたりすることができる。\n"
+"B<getopt> は、そうしたことのために E<.SM GNU> B<getopt>(3)\n"
+"のルーティンを使用している。"
+
+#. type: Plain text
+#: getopt.man:54
+msgid ""
+"The parameters B<getopt> is called with can be divided into two parts: "
+"options which modify the way B<getopt> will do the parsing (the I<options> "
+"and the I<optstring> in the B<SYNOPSIS>), and the parameters which are to be "
+"parsed (I<parameters> in the B<SYNOPSIS>).  The second part will start at "
+"the first non-option parameter that is not an option argument, or after the "
+"first occurrence of 'B<-->'.  If no 'B<-o>' or 'B<--options>' option is "
+"found in the first part, the first parameter of the second part is used as "
+"the short options string."
+msgstr ""
+"B<getopt> を呼び出すときに使用するパラメータは、2 つの部分に分けることができる。\n"
+"すなわち、B<getopt> が解析を行うときの動作を変更するオプション部分\n"
+"(上記「B<書式>」の I<options> と I<opstring>) と、解析の対象になるパラメータ部分\n"
+"(上記「B<書式>」の I<parameters>) の 2 つである。2 番目の部分は、\n"
+"オプションではない最初のパラメータで、オプションの引き数でもないものから始まるか、\n"
+"あるいは、'B<-->' が最初に現れた位置の直後から始まる。なお、1 番目の部分に\n"
+"'B<-o>' オプションや 'B<--options>' オプションが存在しない場合は、2\n"
+"番目の部分の最初のパラメータが、解析の対象となるショートオプションを\n"
+"1 つにまとめたショートオプションズ文字列 (すなわち I<optsting>) として使用される\n"
+"(訳注: これは 2 番目の書式のことである)。\n"
+
+#. type: Plain text
+#: getopt.man:70
+msgid ""
+"If the environment variable B<GETOPT_COMPATIBLE> is set, or if the first "
+"I<parameter> is not an option (does not start with a 'B<->', the first "
+"format in the B<SYNOPSIS>), B<getopt> will generate output that is "
+"compatible with that of other versions of B<getopt>(1).  It will still do "
+"parameter shuffling and recognize optional arguments (see section "
+"B<COMPATIBILITY> for more information)."
+msgstr ""
+"環境変数 B<GETOPT_COMPATIBLE>\n"
+"が設定されている場合や、最初のパラメータがオプションではない場合 (すなわち、'B<->'\n"
+"で始まっていない場合で、これは「B<書式>」の第 1 の形式である)、この\n"
+"B<getopt> は他のバージョンの B<getopt>(1) と互換性のある出力を生成する。\n"
+"なお、その場合でも、パラメータの並べ替えは行うし、指定が任意の引き数の認識もする\n"
+"(詳細については、「B<互換性>」セクションを参照していただきたい)。"
+
+#. type: Plain text
+#: getopt.man:89
+msgid ""
+"Traditional implementations of B<getopt>(1)  are unable to cope with "
+"whitespace and other (shell-specific)  special characters in arguments and "
+"non-option parameters.  To solve this problem, this implementation can "
+"generate quoted output which must once again be interpreted by the shell "
+"(usually by using the B<eval> command).  This has the effect of preserving "
+"those characters, but you must call B<getopt> in a way that is no longer "
+"compatible with other versions (the second or third format in the "
+"B<SYNOPSIS>).  To determine whether this enhanced version of B<getopt>(1)  "
+"is installed, a special test option (B<-T>)  can be used."
+msgstr ""
+"従来の B<getopt>(1)\n"
+"の実装では、引き数などのオプションではないパラメータの中に、ホワイトスペース\n"
+"(訳注: 空白、タブ、改行など) や (シェル固有の)\n"
+"特殊文字などがあると、それに対処することができなかった。\n"
+"この問題を解決するために、この実装では、クォートした出力を生成できるようになっているが、\n"
+"そうした出力は、シェルによってもう一度解釈される必要がある\n"
+"(たいていは、そのために B<eval> コマンドを使用する)。\n"
+"この出力形式を使えば、ホワイトスペースや特殊文字を保護することにはなるが、それには\n"
+"B<getopt> を他のバージョンともはや互換性のない形で呼び出さなければならない\n"
+"(すなわち、「B<書式>」セクションの第 2 や 第 3 の書式だ)。御使用のシステムに\n"
+"B<getopt>(1) のこの強化版がインストールされているかどうかを知るには、\n"
+"専用のテストオプション (B<-T>) を使用すればよい。"
+
+#. type: SH
+#: getopt.man:89
+#, no-wrap
+msgid "OPTIONS"
+msgstr "オプション"
+
+#. type: TP
+#: getopt.man:90
+#, no-wrap
+msgid "B<-a>,B< --alternative>"
+msgstr "B<-a>,B< --alternative>"
+
+#. type: Plain text
+#: getopt.man:94
+msgid "Allow long options to start with a single 'B<->'."
+msgstr "ロングオプションを 1 個の 'B<->' で始めることができるようにする。"
+
+#. type: TP
+#: getopt.man:94
+#, no-wrap
+msgid "B<-h>,B< --help>"
+msgstr "B<-h>,B< --help>"
+
+#. type: Plain text
+#: getopt.man:97
+msgid "Display help text and exit.  No other output is generated."
+msgstr "ヘルプを表示して、終了する。それ以上何も出力しない。"
+
+#. type: TP
+#: getopt.man:97
+#, no-wrap
+msgid "B<-l>,B< --longoptions >I<longopts>"
+msgstr "B<-l>,B< --longoptions >I<longopts>"
+
+#. type: Plain text
+#: getopt.man:107
+msgid ""
+"The long (multi-character) options to be recognized.  More than one option "
+"name may be specified at once, by separating the names with commas.  This "
+"option may be given more than once, the I<longopts> are cumulative.  Each "
+"long option name in I<longopts> may be followed by one colon to indicate it "
+"has a required argument, and by two colons to indicate it has an optional "
+"argument."
+msgstr ""
+"認識すべきロング (複数の文字からなる) オプション群を指定する。\n"
+"2 個以上のオプション名を、コンマで区切って一度に指定することができる。\n"
+"このオプションは複数回指定することもでき、その場合も I<longopts>\n"
+"が追加されていく。I<longouts>\n"
+"中の各ロングオプション名の後ろには、コロンを続けることができる。コロンが 1 個のときは、\n"
+"引き数が必須だということであり、2 個のときは、\n"
+"引き数は任意、すなわち、あってもなくてもよいということである。"
+
+#. type: TP
+#: getopt.man:107
+#, no-wrap
+msgid "B<-n>,B< --name >I<progname>"
+msgstr "B<-n>,B< --name >I<progname>"
+
+#. type: Plain text
+#: getopt.man:114
+msgid ""
+"The name that will be used by the B<getopt>(3)  routines when it reports "
+"errors.  Note that errors of B<getopt>(1)  are still reported as coming from "
+"getopt."
+msgstr ""
+"B<getopt>(3) ルーティンが、エラーを通知する際に使用するプログラム名を指定する。\n"
+"B<getopt>(1) 自体に関するエラーは (訳注: たとえば、\n"
+"B<getopt> コマンドのオプションが間違っている場合などは)、やはり getopt\n"
+"コマンドがエラーの発生元として報告されることに注意していただきたい。"
+
+#. type: TP
+#: getopt.man:114
+#, no-wrap
+msgid "B<-o>,B< --options >I<shortopts>"
+msgstr "B<-o>,B< --options >I<shortopts>"
+
+#. type: Plain text
+#: getopt.man:134
+msgid ""
+"The short (one-character) options to be recognized.  If this option is not "
+"found, the first parameter of B<getopt> that does not start with a 'B<->' "
+"(and is not an option argument) is used as the short options string.  Each "
+"short option character in I<shortopts> may be followed by one colon to "
+"indicate it has a required argument, and by two colons to indicate it has an "
+"optional argument.  The first character of shortopts may be 'B<+>' or 'B<->' "
+"to influence the way options are parsed and output is generated (see section "
+"B<SCANNING MODES> for details)."
+msgstr ""
+"認識すべきショート (1 文字からなる) オプション群を指定する。\n"
+"このオプションが指定されていない場合は、'B<->' で始まらない\n"
+"(そして、オプションの引数でもない) B<getopt> の最初のパラメータが、\n"
+"ショートオプションを一つにまとめたショートオプションズ文字列として使用される\n"
+"(訳注: 「B<書式>」セクションの第 2 の書式)。I<shortopts>\n"
+"中のショートオプション各文字の後ろには、コロンを続けることができる。コロンが\n"
+"1 個のときは、引き数が必須だということであり、2\n"
+"個のときは、引き数は任意、すなわち、あってもなくてもよいということである。\n"
+"また、I<shortopts> の最初の文字を 'B<+>' や 'B<->'\n"
+"にすれば、オプションの解析や、出力の生成の仕方に影響を与えることができる\n"
+"(詳細については、「B<スキャニングモード>」セクションを参照すること)。"
+
+#. type: TP
+#: getopt.man:134
+#, no-wrap
+msgid "B<-q>,B< --quiet>"
+msgstr "B<-q>,B< --quiet>"
+
+#. type: Plain text
+#: getopt.man:137
+msgid "Disable error reporting by getopt(3)."
+msgstr "getopt(3) の出すエラーメッセージを表示しない。"
+
+#. type: TP
+#: getopt.man:137
+#, no-wrap
+msgid "B<-Q>,B< --quiet-output>"
+msgstr "B<-Q>,B< --quiet-output>"
+
+#. type: Plain text
+#: getopt.man:143
+msgid ""
+"Do not generate normal output.  Errors are still reported by B<getopt>(3), "
+"unless you also use B<-q>."
+msgstr ""
+"通常の出力を生成しない。それでも、 B<-q> も同時に指定しないかぎり、\n"
+"B<getopt>(3) によるエラー報告は行われる。"
+
+#. type: TP
+#: getopt.man:143
+#, no-wrap
+msgid "B<-s>,B< --shell >I<shell>"
+msgstr "B<-s>,B< --shell >I<shell>"
+
+#. type: Plain text
+#: getopt.man:155
+msgid ""
+"Set quoting conventions to those of I<shell>.  If the B<-s> option is not "
+"given, the E<.SM BASH> conventions are used.  Valid arguments are currently "
+"'B<sh>' 'B<bash>', 'B<csh>', and 'B<tcsh>'."
+msgstr ""
+"クォート方式を I<shell> のものにする。B<-s> "
+"オプションが指定されていない場合は、 E<.SM BASH> "
+"のクォート方式が使われる。 "
+"指定可能な引き数は、現在のところ 'B<sh>', 'B<bash>', "
+"'B<csh>', 'B<tcsh>' である。"
+
+#. type: TP
+#: getopt.man:155
+#, no-wrap
+msgid "B<-T>,B< --test>"
+msgstr "B<-T>,B< --test>"
+
+#. type: Plain text
+#: getopt.man:167
+msgid ""
+"Test if your B<getopt>(1)  is this enhanced version or an old version.  This "
+"generates no output, and sets the error status to 4.  Other implementations "
+"of B<getopt>(1), and this version if the environment variable "
+"B<GETOPT_COMPATIBLE> is set, will return 'B<-->' and error status 0."
+msgstr ""
+"現在使っている B<getopt>(1)  "
+"が、強化バージョンか古いバージョンかをテストする。 "
+"このオプションは何も出力しないが、エラーステータスを "
+"4 にする。 B<getopt(1)> "
+"の他の実装や、このバージョンでも環境変数 "
+"B<GETOPT_COMPATIBLE> が設定されている場合は、 'B<-->' "
+"を返して、エラーステータスを 0 にする。"
+
+#. type: TP
+#: getopt.man:167
+#, no-wrap
+msgid "B<-u>,B< --unquoted>"
+msgstr "B<-u>,B< --unquoted>"
+
+#. type: Plain text
+#: getopt.man:174
+msgid ""
+"Do not quote the output.  Note that whitespace and special (shell-dependent) "
+"characters can cause havoc in this mode (like they do with other "
+"B<getopt>(1)  implementations)."
+msgstr ""
+"出力をクォートしない。このモードでは、ホワイトスペースや "
+"(シェルによって様々な)  特殊文字が、 (B<getopt>(1)  "
+"の他の実装におけると同様に) "
+"望ましからぬ混乱を引き起こしかねないことに、注意していただきたい。"
+
+#. type: TP
+#: getopt.man:174
+#, no-wrap
+msgid "B<-V>,B< --version>"
+msgstr "B<-V>,B< --version>"
+
+#. type: Plain text
+#: getopt.man:177
+msgid "Display version information and exit.  No other output is generated."
+msgstr "バージョン情報を表示して、終了する。それ以上何も出力しない。"
+
+#. type: SH
+#: getopt.man:177
+#, no-wrap
+msgid "PARSING"
+msgstr "構文解析"
+
+#. type: Plain text
+#: getopt.man:197
+msgid ""
+"This section specifies the format of the second part of the parameters of "
+"B<getopt> (the I<parameters> in the B<SYNOPSIS>).  The next section "
+"(B<OUTPUT>)  describes the output that is generated.  These parameters were "
+"typically the parameters a shell function was called with.  Care must be "
+"taken that each parameter the shell function was called with corresponds to "
+"exactly one parameter in the parameter list of B<getopt> (see the "
+"B<EXAMPLES>).  All parsing is done by the GNU B<getopt>(3)  routines."
+msgstr ""
+"このセクションは、B<getopt> のパラメータの\n"
+"2 番目の部分 (「B<書式>」セクションの I<parameters>)\n"
+"の書式について詳述している。次のセクション (「B<出力>」)\n"
+"では、生成される出力について説明する。一般に B<getopt>\n"
+"は、シェル関数やシェルスクリプトの中で、その引き数を解析するために使うものなので、\n"
+"ここで取り上げるパラメータ群が、元はと言えば、\n"
+"シェル関数を呼んだときに渡したパラメータだったというのは、\n"
+"ごく普通のことである。そこで、シェル関数を呼んだときに渡す各パラメータは、B<getopt>\n"
+"のパラメータリスト中のパラメータと 1 対 1\n"
+"で対応するように、気を付けて指定しなければならない\n"
+"(「B<用例>」セクションを参照)。すべての解析は、GNU B<getopt>(3)\n"
+"のルーティンによって行われる。"
+
+#. type: Plain text
+#: getopt.man:201
+msgid ""
+"The parameters are parsed from left to right.  Each parameter is classified "
+"as a short option, a long option, an argument to an option, or a non-option "
+"parameter."
+msgstr "パラメータ群は左から右へ解析される。各パラメータは、ショートオプション、ロングオプション、 オプションの引き数、オプションとは無関係なパラメータに分割分類される。"
+
+#. type: Plain text
+#: getopt.man:209
+msgid ""
+"A simple short option is a 'B<->' followed by a short option character.  If "
+"the option has a required argument, it may be written directly after the "
+"option character or as the next parameter (i.e., separated by whitespace on "
+"the command line).  If the option has an optional argument, it must be "
+"written directly after the option character if present."
+msgstr ""
+"単純なショートオプションは、1 個の 'B<->' に 1\n"
+"個のショートオプション文字が続くものである。\n"
+"オプションが引き数を必須にしている場合は、オプション文字の直後に続けてもよく、\n"
+"次のパラメータとして (すなわち、コマンドライン上でホワイトスペースを間に置いて)\n"
+"書いてもよい。オプションの引き数が任意の場合は、それが存在するなら、\n"
+"オプション文字の直後に続けなければならない。"
+
+#. type: Plain text
+#: getopt.man:214
+msgid ""
+"It is possible to specify several short options after one 'B<->', as long as "
+"all (except possibly the last) do not have required or optional arguments."
+msgstr ""
+"1 個の 'B<->' の後ろに数個のショートオプションをまとめて指定することもできる。\n"
+"ただし、最後のオプション以外のすべてのオプションが、\n"
+"必須や任意の引き数を取らないという条件がある\n"
+"(例外として、最後のオプションは引き数を取ることができる)。"
+
+#. type: Plain text
+#: getopt.man:232
+msgid ""
+"A long option normally begins with 'B<-->' followed by the long option "
+"name.  If the option has a required argument, it may be written directly "
+"after the long option name, separated by 'B<=>', or as the next argument "
+"(i.e., separated by whitespace on the command line).  If the option has an "
+"optional argument, it must be written directly after the long option name, "
+"separated by 'B<=>', if present (if you add the 'B<=>' but nothing behind "
+"it, it is interpreted as if no argument was present; this is a slight bug, "
+"see the B<BUGS>).  Long options may be abbreviated, as long as the "
+"abbreviation is not ambiguous."
+msgstr ""
+"ロングオプションは、通常 'B<-->' で始まり、ロングオプション名がそれに続く。\n"
+"オプションが引き数を必須にしている場合は、ロングオプション名の直後に 'B<=>'\n"
+"で区切って続けてもよく、次の引き数として\n"
+"(すなわち、コマンドライン上でホワイトスペースを間に置いて) 書いてもよい。\n"
+"オプションの引き数が任意の場合は、それが存在するなら、ロングオプション名の直後に\n"
+"\\&'B<=>' で区切って続けなければならない ('B<=>'\n"
+"を続けたものの、その後に何も指定しない場合は、引き数が存在しないかのように解釈される。\n"
+"これはちょっとしたバグである。「B<バグ>」セクションを参照)。\n"
+"ロングオプションは、短縮しても他のオプションと区別が付くかぎり、短縮できる。"
+
+#. type: Plain text
+#: getopt.man:245
+msgid ""
+"Each parameter not starting with a 'B<->', and not a required argument of a "
+"previous option, is a non-option parameter.  Each parameter after a 'B<-->' "
+"parameter is always interpreted as a non-option parameter.  If the "
+"environment variable B<POSIXLY_CORRECT> is set, or if the short option "
+"string started with a 'B<+>', all remaining parameters are interpreted as "
+"non-option parameters as soon as the first non-option parameter is found."
+msgstr ""
+"'B<->' で始まっていないパラメータで、直前のオプションの必須の引き数でもないものは、\n"
+"いずれもオプションとは無関係なパラメータである。また、'B<-->'\n"
+"というパラメータの後にあるパラメータは、常にオプションとは無関係なパラメータと解釈される。\n"
+"環境変数 B<POSIXLY_CORRECT> が設定されている場合や、ショートオプションズ文字列\n"
+"(訳注: 「B<書式>」の I<optstring>) が 'B<+>'\n"
+"で始まっている場合は、オプションとは無関係な最初のパラメータが見つかった時点で、\n"
+"残りのすべてのパラメータは、オプションとは無関係なパラメータと解釈される。"
+
+#. type: SH
+#: getopt.man:245
+#, no-wrap
+msgid "OUTPUT"
+msgstr "出力"
+
+#. type: Plain text
+#: getopt.man:260
+msgid ""
+"Output is generated for each element described in the previous section.  "
+"Output is done in the same order as the elements are specified in the input, "
+"except for non-option parameters.  Output can be done in I<compatible> "
+"(I<unquoted>)  mode, or in such way that whitespace and other special "
+"characters within arguments and non-option parameters are preserved (see "
+"B<QUOTING>).  When the output is processed in the shell script, it will seem "
+"to be composed of distinct elements that can be processed one by one (by "
+"using the shift command in most shell languages).  This is imperfect in "
+"unquoted mode, as elements can be split at unexpected places if they contain "
+"whitespace or special characters."
+msgstr ""
+"出力は、前のセクションで述べた要素の\n"
+"(訳注: すなわち、オプション、オプションの引き数、オプションとは無関係なパラメータ)\n"
+"ひとつひとつに対して生成される。 出力される順番は、オプションとは無関係なパラメータ以外は、\n"
+"各要素が入力で指定された順番と同じである。出力は、互換 (クォートしない)\n"
+"モードで行うこともできるし、ホワイトスペースなどの特殊文字が、\n"
+"オプション引き数やオプションとは無関係なパラメータ中にある場合に、\n"
+"そうしたものを保護する形で行うこともできる (「B<クォート>」セクションを参照)。\n"
+"出力はシェルスクリプト中で処理される際に、それを構成する各要素が、\n"
+"それぞれ別の独立したものに見えることになるので、(ほとんどのシェル言語では、shift\n"
+"コマンドを使って) ひとつひとつ処理することが可能になる。\n"
+"ただし、クォートなしのモードでのこの処理は、完全ではない。\n"
+"要素にホワイトスペースや特殊文字が含まれていると、\n"
+"思いがけないところで要素が分割されてしまうかもしれないからである。"
+
+#. type: Plain text
+#: getopt.man:265
+msgid ""
+"If there are problems parsing the parameters, for example because a required "
+"argument is not found or an option is not recognized, an error will be "
+"reported on stderr, there will be no output for the offending element, and a "
+"non-zero error status is returned."
+msgstr ""
+"たとえば、引き数が必須なのに存在しないとか、未知のオプションがあるとかいう理由で、\n"
+"パラメータの解析中に問題が起きたときは、エラーメッセージが標準エラーに表示され、\n"
+"問題を起こした要素については、何も出力されない。\n"
+"そして、ゼロ以外のエラーステータスが返される。"
+
+#. type: Plain text
+#: getopt.man:276
+msgid ""
+"For a short option, a single 'B<->' and the option character are generated "
+"as one parameter.  If the option has an argument, the next parameter will be "
+"the argument.  If the option takes an optional argument, but none was found, "
+"the next parameter will be generated but be empty in quoting mode, but no "
+"second parameter will be generated in unquoted (compatible) mode.  Note that "
+"many other B<getopt>(1)  implementations do not support optional arguments."
+msgstr ""
+"ショートオプションに対しては、1 個の 'B<->'\n"
+"とオプション文字が、ひとつのパラメータとして生成される。\n"
+"オプションに引き数がある場合は、次のパラメータがその引き数である。\n"
+"オプションの引き数が任意なとき、その引き数が見つからなかった場合は、\n"
+"クォーティングモードでは、次のパラメータが生成されるが、空のパラメータになる。\n"
+"クォートなしのモード (互換モード) では、2 番目のパラメータは生成されない。\n"
+"なお、B<getopt>(1) の他の実装では、任意の引数をサポートしていないことが多い。"
+
+#. type: Plain text
+#: getopt.man:280
+msgid ""
+"If several short options were specified after a single 'B<->', each will be "
+"present in the output as a separate parameter."
+msgstr ""
+"1 個の 'B<->' の後ろに複数のショートオプションが指定されている場合は、\n"
+"各オプションがそれぞれ独立したパラメータとして出力されることになる。"
+
+#. type: Plain text
+#: getopt.man:288
+msgid ""
+"For a long option, 'B<-->' and the full option name are generated as one "
+"parameter.  This is done regardless whether the option was abbreviated or "
+"specified with a single 'B<->' in the input.  Arguments are handled as with "
+"short options."
+msgstr ""
+"ロングオプションに対しては、'B<-->'\n"
+"と省略なしのオプション名がひとつのパラメータとして生成される。\n"
+"この動作は、入力中でオプションが短縮されているかどうかや、1 個の 'B<->'\n"
+"とともに指定されているかどうか (訳注: B<-a> オプションを使った場合)\n"
+"とは、関係がない。引き数の処理は、ショートオプションの場合と同じである。"
+
+#. type: Plain text
+#: getopt.man:305
+msgid ""
+"Normally, no non-option parameters output is generated until all options and "
+"their arguments have been generated.  Then 'B<-->' is generated as a single "
+"parameter, and after it the non-option parameters in the order they were "
+"found, each as a separate parameter.  Only if the first character of the "
+"short options string was a 'B<->', non-option parameter output is generated "
+"at the place they are found in the input (this is not supported if the first "
+"format of the B<SYNOPSIS> is used; in that case all preceding occurrences of "
+"'B<->' and 'B<+>' are ignored)."
+msgstr ""
+"通常、オプションとは無関係なパラメータの出力が生成されるのは、\n"
+"すべてのオプションとその引き数が生成されてからである。\n"
+"それから、'B<-->' が 1 個のパラメータとして生成され、\n"
+"その後で、オプションとは無関係なパラメータが、\n"
+"見つかった順序で、それぞれ独立したパラメータとして生成される。\n"
+"ただし、ショートオプションズ文字列の最初の文字が 'B<->'\n"
+"のときだけは別で、その場合は、オプションとは無関係なパラメータの出力が、\n"
+"入力中のそれが見つかった位置で生成される (この動作は、「B<書式>」セクションの第 1\n"
+"の書式が使用されている場合には、サポートされない。\n"
+"その場合は、ショートオプションズ文字列の前にある 'B<->' や\n"
+"'B<+>' は、すべて無視される)。"
+
+#. type: SH
+#: getopt.man:305
+#, no-wrap
+msgid "QUOTING"
+msgstr "クォート"
+
+#. type: Plain text
+#: getopt.man:315
+msgid ""
+"In compatible mode, whitespace or 'special' characters in arguments or "
+"non-option parameters are not handled correctly.  As the output is fed to "
+"the shell script, the script does not know how it is supposed to break the "
+"output into separate parameters.  To circumvent this problem, this "
+"implementation offers quoting.  The idea is that output is generated with "
+"quotes around each parameter.  When this output is once again fed to the "
+"shell (usually by a shell B<eval> command), it is split correctly into "
+"separate parameters."
+msgstr ""
+"互換モードでは、オプションの引き数やオプションとは無関係なパラメータ中に、\n"
+"ホワイトスペースや特殊文字があると、それを適切に処理できない。\n"
+"そのため、互換モードの出力を渡されたシェルスクリプトは、\n"
+"その出力をどのように個々のパラメータに分割することを期待されているのか、わからないことになる。\n"
+"この問題を回避するために、B<getopt> のこの実装では、クォートによる保護を提供している。\n"
+"要するに、出力を生成するとき、パラメータをひとつひとつ引用符で囲んでやるのである。この出力を\n"
+"(たいていは、シェルの B<eval> コマンドを使って)\n"
+"もう一度シェルに渡してやれば、別々のパラメータに適切に分割されることになる。"
+
+#. type: Plain text
+#: getopt.man:323
+msgid ""
+"Quoting is not enabled if the environment variable B<GETOPT_COMPATIBLE> is "
+"set, if the first form of the B<SYNOPSIS> is used, or if the option 'B<-u>' "
+"is found."
+msgstr ""
+"次の場合には、引用符による保護が行われない。環境変数 B<GETOPT_COMPATIBLE>\n"
+"が設定されている場合、「B<書式>」セクションの第 1\n"
+"の書式が使われている場合、'B<-u>' オプションが指定されている場合。"
+
+#. type: Plain text
+#: getopt.man:337
+msgid ""
+"Different shells use different quoting conventions.  You can use the 'B<-s>' "
+"option to select the shell you are using.  The following shells are "
+"currently supported: 'B<sh>', 'B<bash>', 'B<csh>' and 'B<tcsh>'.  Actually, "
+"only two 'flavors' are distinguished: sh-like quoting conventions and "
+"csh-like quoting conventions.  Chances are that if you use another shell "
+"script language, one of these flavors can still be used."
+msgstr ""
+"クォート方式はシェルごとに異なる。自分が使用しているシェルの方式を選ぶには、'B<-s>'\n"
+"オプションを使えばよい。現在サポートしているシェルは、'B<sh>', 'B<bash>',\n"
+"'B<csh>', 'B<tcsh>' である。実のところ、sh 風のクォート方式と\n"
+"csh 風のクォート方式という、2 つの系統しか区別していない。\n"
+"別のシェルスクリプト言語を使用している場合でも、この\n"
+"2 つの系統のどちらかが多分使えるだろう。"
+
+#. type: SH
+#: getopt.man:337
+#, no-wrap
+msgid "SCANNING MODES"
+msgstr "スキャニングモード"
+
+#. type: Plain text
+#: getopt.man:348
+msgid ""
+"The first character of the short options string may be a 'B<->' or a 'B<+>' "
+"to indicate a special scanning mode.  If the first calling form in the "
+"B<SYNOPSIS> is used they are ignored; the environment variable "
+"B<POSIXLY_CORRECT> is still examined, though."
+msgstr ""
+"ショートオプションズ文字列 (訳注: 「書式」の I<optstring>)\n"
+"の先頭には、1 個の 'B<->' または 'B<+>'\n"
+"を付けて、特別なスキャニングモードを指示することができる。\n"
+"「B<書式>」の第 1 の呼び出し形式が使用されている場合には、\n"
+"こうしたプラスやマイナス記号は無視されるが、そのときでも、環境変数\n"
+"B<POSIXLY_CORRECT> が設定されているかどうかは、やはり調べられる (訳注: 実際には、\n"
+"第 1 の書式で I<optstring> の先頭に 'B<->'\n"
+"を付けると、2, 3 番目の書式と混同されて、多分エラーになる)。"
+
+#. type: Plain text
+#: getopt.man:358
+msgid ""
+"If the first character is 'B<+>', or if the environment variable "
+"B<POSIXLY_CORRECT> is set, parsing stops as soon as the first non-option "
+"parameter (i.e., a parameter that does not start with a 'B<->')  is found "
+"that is not an option argument.  The remaining parameters are all "
+"interpreted as non-option parameters."
+msgstr ""
+"先頭文字が 'B<+>' の場合や、環境変数 B<POSIXLY_CORRECT>\n"
+"が設定されている場合は、オプションではないパラメータで (すなわち、'B<-'>\n"
+"で始まっていないパラメータで)、かつオプションの引き数でもないものが最初に見つかった時点で、\n"
+"解析はストップする。残りのパラメータはすべて、オプションとは無関係なパラメータと見なされる。"
+
+#. type: Plain text
+#: getopt.man:369
+msgid ""
+"If the first character is a 'B<->', non-option parameters are outputted at "
+"the place where they are found; in normal operation, they are all collected "
+"at the end of output after a 'B<-->' parameter has been generated.  Note "
+"that this 'B<-->' parameter is still generated, but it will always be the "
+"last parameter in this mode."
+msgstr ""
+"先頭文字が 'B<->' の場合、オプションとは無関係なパラメータは、\n"
+"それが見つかった位置に出力される。それに対して、通常の動作では、\n"
+"そうしたパラメータは、1 個の 'B<-->' というパラメータが生成された後で、\n"
+"出力の末尾に全部まとめて置かれるのである。 なお、このモードでも、'B<-->'\n"
+"というパラメータはやはり生成されるが、必ず最後のパラメータになる。"
+
+#. type: SH
+#: getopt.man:369
+#, no-wrap
+msgid "COMPATIBILITY"
+msgstr "互換性"
+
+#. type: Plain text
+#: getopt.man:375
+msgid ""
+"This version of B<getopt>(1)  is written to be as compatible as possible to "
+"other versions.  Usually you can just replace them with this version without "
+"any modifications, and with some advantages."
+msgstr ""
+"このバージョンの B<getopt>(1)\n"
+"は、できるだけ他のバージョンと互換性があるように書かれている。\n"
+"たいていの場合、他のバージョンの B<getopt> をこのバージョンで置き換えるだけでよく、\n"
+"既存のシェルスクリプトなどに手を入れる必要はない。さらに、いくつかの利点もある。"
+
+#. type: Plain text
+#: getopt.man:386
+msgid ""
+"If the first character of the first parameter of getopt is not a 'B<->', "
+"B<getopt> goes into compatibility mode.  It will interpret its first "
+"parameter as the string of short options, and all other arguments will be "
+"parsed.  It will still do parameter shuffling (i.e., all non-option "
+"parameters are output at the end), unless the environment variable "
+"B<POSIXLY_CORRECT> is set."
+msgstr ""
+"getopt の最初のパラメータの最初の文字が 'B<->' "
+"でない場合、getopt は互換モードになる。 "
+"最初のパラメータは、ショートオプションをひとつにまとめた文字列と見なされ、 "
+"他のすべての引き数は、解析の対象になる。 "
+"この場合でも、環境変数 B<POSIXLY_CORRECT> "
+"が設定されていないかぎり、パラメータの並べ替えは行う。 "
+"(すなわち、オプションとは無関係なすべてのパラメータは、最後に出力される)。"
+
+#. type: Plain text
+#: getopt.man:395
+msgid ""
+"The environment variable B<GETOPT_COMPATIBLE> forces B<getopt> into "
+"compatibility mode.  Setting both this environment variable and "
+"B<POSIXLY_CORRECT> offers 100% compatibility for 'difficult' programs.  "
+"Usually, though, neither is needed."
+msgstr ""
+"環境変数 B<GETOPT_COMPATIBLE> は B<getopt>\n"
+"を強制的に互換モードにする。この環境変数と B<POSIXLY_CORRECT>\n"
+"の両方を設定すると、「気難しい」プログラムのために 100% の互換性が得られる。\n"
+"しかし、通常はどちらも設定する必要がない。"
+
+#. type: Plain text
+#: getopt.man:401
+msgid ""
+"In compatibility mode, leading 'B<->' and 'B<+>' characters in the short "
+"options string are ignored."
+msgstr ""
+"互換モードでは、ショートオプションズ文字列の先頭に付く "
+"'B<->' や 'B<+>' は無視される。"
+
+#. type: SH
+#: getopt.man:401
+#, no-wrap
+msgid "RETURN CODES"
+msgstr "返り値"
+
+#. type: Plain text
+#: getopt.man:417
+msgid ""
+"B<getopt> returns error code B<0> for successful parsing, B<1> if "
+"B<getopt>(3)  returns errors, B<2> if it does not understand its own "
+"parameters, B<3> if an internal error occurs like out-of-memory, and B<4> if "
+"it is called with B<-T>."
+msgstr ""
+"B<getopt> は、解析に成功した場合は、エラーコード B<0> を返す。 B<getopt>(3)\n"
+"がエラーを返した場合は B<1> を返す。\n"
+"自分自身に対して与えられたパラメータが理解できなかった場合は B<2>\n"
+"を返す。メモリが足りない (out-of-memory) といった内部エラーが起きた場合は B<3>\n"
+"を返す。B<-T> オプションを付けて呼び出された場合は B<4> を返す。"
+
+#. type: SH
+#: getopt.man:417
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "用例"
+
+#. type: Plain text
+#: getopt.man:425
+msgid ""
+"Example scripts for (ba)sh and (t)csh are provided with the B<getopt>(1)  "
+"distribution, and are optionally installed in I</usr/share/getopt/> or "
+"I</usr/share/doc/> in the util-linux subdirectory."
+msgstr ""
+"B<getopt>(1)  の配布では、(ba)sh と (t)csh\n"
+"用のスクリプトの見本を提供している。インストールされているなら、I</usr/share/getopt/>\n"
+"か I</usr/share/doc/> 以下の util-linux のサブディレクトリにあるだろう。"
+
+#. type: SH
+#: getopt.man:425
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "環境変数"
+
+#. type: IP
+#: getopt.man:426
+#, no-wrap
+msgid "POSIXLY_CORRECT"
+msgstr "POSIXLY_CORRECT"
+
+#. type: Plain text
+#: getopt.man:434
+msgid ""
+"This environment variable is examined by the B<getopt>(3)  routines.  If it "
+"is set, parsing stops as soon as a parameter is found that is not an option "
+"or an option argument.  All remaining parameters are also interpreted as "
+"non-option parameters, regardless whether they start with a 'B<->'."
+msgstr ""
+"この環境変数は B<getopt>(3) ルーティンによって調べられる。これが設定されている場合、\n"
+"オプションでもオプションの引き数でもないパラメータが見つかった時点で、解析は停止する。\n"
+"それ以降のすべてのパラメータは、'B<->'\n"
+"で始まっているかどうかに関係なく、オプションとは無関係なパラメータとして解釈される。"
+
+#. type: IP
+#: getopt.man:434
+#, no-wrap
+msgid "GETOPT_COMPATIBLE"
+msgstr "GETOPT_COMPATIBLE"
+
+#. type: Plain text
+#: getopt.man:439
+msgid ""
+"Forces B<getopt> to use the first calling format as specified in the "
+"B<SYNOPSIS>."
+msgstr ""
+"B<getopt> に対して強制的に「B<書式>」セクションの第 1\n"
+"の呼び出し形式を使わせる。"
+
+#. type: SH
+#: getopt.man:439
+#, no-wrap
+msgid "BUGS"
+msgstr "バグ"
+
+#. type: Plain text
+#: getopt.man:446
+msgid ""
+"B<getopt>(3)  can parse long options with optional arguments that are given "
+"an empty optional argument (but cannot do this for short options).  This "
+"B<getopt>(1)  treats optional arguments that are empty as if they were not "
+"present."
+msgstr ""
+"B<getopt>(3)\n"
+"関数は、引き数が任意のロングオプションが、空の任意引き数を渡された場合でも、解析できる\n"
+"(だが、ショートオプションについては、それができない)。この B<getopt>(1)\n"
+"コマンドは、空の任意引き数を、引き数が存在しないかのように処理している。\n"
+
+#. type: Plain text
+#: getopt.man:450
+msgid ""
+"The syntax if you do not want any short option variables at all is not very "
+"intuitive (you have to set them explicitly to the empty string)."
+msgstr ""
+"ショートオプションを全く使いたくない場合の B<getopt>\n"
+"コマンドの構文は、あまり直感的ではない\n"
+"(ショートオプションズ文字列を明示的に空文字列にしなければならないのだ)。"
+
+#. type: SH
+#: getopt.man:450
+#, no-wrap
+msgid "AUTHOR"
+msgstr "作者"
+
+#. type: Plain text
+#: getopt.man:453
+msgid "Frodo Looijaard"
+msgstr "Frodo Looijaard"
+
+#. type: SH
+#: getopt.man:454
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "関連項目"
+
+#. type: Plain text
+#: getopt.man:458
+msgid "B<bash>(1), B<tcsh>(1), B<getopt>(3)"
+msgstr "B<bash>(1), B<tcsh>(1), B<getopt>(3)"
+
+#. type: SH
+#: getopt.man:458
+#, no-wrap
+msgid "AVAILABILITY"
+msgstr "入手方法"
+
+#. type: Plain text
+#: getopt.man:462
+msgid ""
+"The getopt command is part of the util-linux package and is available from "
+"E<.UR https://\\:www.kernel.org\\:/pub\\:/linux\\:/utils\\:/util-linux/> "
+"Linux Kernel Archive E<.UE .>"
+msgstr ""
+"この getopt コマンドは、util-linux パッケージの一部であり、\n"
+"E<.UR https://\\:www.kernel.org\\:/pub\\:/linux\\:/utils\\:/util-linux/>\n"
+"Linux Kernel Archive E<.UE> から入手できる。"
diff --git a/manual/util-linux/po4a/man1/hexdump-ja.patch b/manual/util-linux/po4a/man1/hexdump-ja.patch
new file mode 100644 (file)
index 0000000..03060e1
--- /dev/null
@@ -0,0 +1,164 @@
+--- hexdump.1.orig     2020-04-15 16:45:05.718041544 +0900
++++ hexdump.1  2020-04-15 16:49:05.601964559 +0900
+@@ -36,11 +36,38 @@
+ .\" This file was generated with po4a. Translate the source file.
+ .\"
+ .\"*******************************************************************
++.\"
++.\" The original version of this translation was contributed 
++.\" to Linux JM project from NetBSD jman proj.
++.\"
++.\" The copyright for the modified parts of the translation blongs to us
++.\" with Linux JM project.
++.\"
++.\" Japanese Version Copyright for the modified parts (c) 2001-2020 Yuichi SATO
++.\"   and 2020 Yoichi Chonan,
++.\"         all rights reserved.
++.\" Translated Tue 11 Jan 1994
++.\"         by NetBSD jman proj. <jman@spa.is.uec.ac.jp>
++.\" Updated Sun Jan 14 00:49:38 JST 2001
++.\"         by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
++.\" Updated Sun Mar 24 11:54:42 JST 2002
++.\"         by Yuichi SATO <ysato@h4.dion.ne.jp>
++.\" Updated & Modified (util-linux 2.34) Wed Apr 15 16:47:56 JST 2020
++.\"         by Yuichi SATO <ysato444@ybb.ne.jp>
++.\"         and Yoichi Chonan <cyoichi@maple.ocn.ne.jp>
++.\"
+ .TH HEXDUMP 1 "April 2013" util\-linux "User Commands"
+ .SH 名前
+ hexdump \- ファイルの内容を 16 進数、10 進数、8 進数、ASCII 文字で表示する
+ .SH 書式
+ \fBhexdump\fP [options]\fI file\fP...
++.SH 読者へのご注意
++これは、util-linux 版の \fBhexdump\fP コマンドのマニュアルである。\fBhexdump\fP
++コマンドの実装には、いくつかの系統がある。御使用のディストリビューションが
++util-linux 版以外の \fBhexdump\fP コマンドを採用している場合は、
++動作やオプションがここで説明しているものとかなり違っているかもしれない。
++そういうときは、英語版しかないかもしれないが、お手元の \fBhexdump\fP
++コマンドに付属するマニュアルに当たってみていただきたい。
+ .SH 説明
+ \fBhexdump\fP ユーティリティは、指定されたファイルをユーザーが指定したフォーマットで表示するフィルタである。
+ ファイルが指定されていない場合は、標準入力を処理の対象にする。
+@@ -133,6 +160,19 @@
+ で区切られた任意の数のフォーマット単位から構成される。1 つのフォーマット単位は、最大で
+ 3 個の要素、すなわち、繰り返し回数、バイト数、フォーマットを含んでいる。
+ .PP
++.IP "[\fB訳注\fP]"
++各フォーマット文字列は 1 行からなる。フォーマット文字列を複数個指定すると、
++その各々が、同じ 1 つの処理単位 
++(後述の\fIブロック\fRである。「\fB処理されるバイト数\fR」セクションを参照)
++に対して、重ねて適用されることになる
++(すなわち、どのフォーマット文字列もブロックの先頭から適用される)。
++複数のフォーマット文字列を指定するには、\fB\-e\fR
++オプションでは、\fB\-e\fR を複数回使えばよい。\fB\-f\fR
++オプションでは、改行で区切って複数行にする。
++.sp
++フォーマット単位は、「繰り返し回数 / バイト数 "フォーマット"」という書式になる。"フォーマット"
++以外は省略できる。
++.PP
+ 繰り返し回数は、指定が任意の (訳注: すなわち、省略可能な)
+ 正の整数であり、デフォルトは 1 である。各フォーマットは繰り返し回数だけ適用される。
+ .PP
+@@ -234,18 +274,28 @@
+ (訳注: カラー指定の実例については、「\fB用例\fP」セクションの
+ 3 番目の例をご覧になっていただきたい)。
+ .PP
+-\fB\&_L[color_unit_1,\:color_unit_2,\:...,\:color_unit_n]\fP
++.nf
++\fB\&_L[color_unit_1,color_unit_2,...,color_unit_n]\fP
++.fi
+ .PP
+ カラー指定単位 (color unit) の完全な書式は以下のとおりである:
+ .PP
+-\fB[!]COLOR\:[:VALUE]\:[@OFFSET_START[\-END]]\fP
++.nf
++\fB[!]COLOR[:VALUE][@OFFSET_START[\-END]]\fP
++.fi
+ .TP 
+ \fB!\fP
+ 条件を否定する。
+ 注意していただきたいが、あるカラー指定単位について否定することに意味があるのは、
+-値/\:文字列と、オフセットの両方を指定したときだけである。
+-その場合は、値/\:文字列がそのオフセットにあるものとマッチしなかったときにのみ、
++値/文字列と、オフセットの両方を指定したときだけである。
++その場合は、値/文字列がそのオフセットにあるものとマッチしなかったときにのみ、
+ 対応する出力文字列がハイライトされることになる。
++.RS
++.IP "[\fB訳注\fP]"
++上で言っているのは、否定は、あるオフセット、または比較的狭いオフセットの範囲に、
++ある値が存在しないことを調べるためのものだということだろう。
++広範囲についてそれをやるのは、色彩を反転させるだけで、否定しないときと事実上同じことになる。
++.RE
+ .TP 
+ \fBCOLOR\fP
+ シェルで使われる 8 種の基本色の 1 つ。
+@@ -354,3 +404,69 @@
+ Linux Kernel Archive
+ .UE
+ から入手できる。
++.SH 翻訳者謝辞
++この man ページの翻訳の最初のバージョンは、NetBSD jman proj
++から寄贈していただいたものだった。また、翻訳にあたっては、FreeBSD
++jpman project <http://www.jp.freebsd.org/man-jp/>
++による翻訳を参考にさせていただいた。両プロジェクトの翻訳者の方々にお礼を申し上げる。
++.SH "おまけ"
++説明がわかりにくかったと思うので、翻訳者の判断で、用例をもう一つ追加して、説明を補足してみる。
++却って混乱が増すようなら、読み飛ばしていただきたい。\fBhexdump -C\fP
++のエミュレーションをしてみよう。次のような内容のファイルを
++hexchar.fmt という名前で作成する。
++.PP
++.nf
++   "%08.8_Ax\en"
++   "%08.8_ax  " 8/1 "%02x " "  " 8/1 "%02x "
++   "  |" "%_p"
++   "|\en"
++.fi
++.PP
++各行がフォーマット文字列であり、「"%08.8_ax\ \ "」 「8/1\ "%02x\ "」
++「"\ \ "」 「"\ \ |"」 「"%_p"」 といった部分がフォーマット単位、
++ダブルクォート (" ") で囲まれた部分がフォーマットである。
++フォーマット単位には、繰り返し回数やバイト数の指定がなく、
++フォーマットしか含まれていないこともある。
++.sp
++入力データは、一定の量ごとに分割されて処理される。その一定の量がブロックだが、
++ブロックの大きさは、フォーマット文字列の中で最大のデータを要求しているものによって決まる。
++上の場合なら、最大のデータを要求しているのは、2 行目であり
++(ほかの行はデータの量を指定していない)、1 バイトが 8 回、さらに 1 バイトが
++8 回繰り返し処理されるわけだから、合計で 16 バイトが要求されていることになる。
++従って、ブロックの大きさは 16 バイトである。言い換えれば、この例では、入力データは
++16 バイトずつ処理されるということだ。
++.sp
++.sp
++各フォーマット文字列は、同一のブロックに対して順番に適用される。
++しかも、それぞれが、そのブロックの先頭に戻って、適用されていく。
++.sp
++1 行目は、「すべての入力データの処理が終わったときに、最後から 
++1 つ先のオフセットを表示せよ」ということだから、ブロックのデータの処理とは関係がない。
++.sp
++2 行目の「"%08.8_ax\ \ " 8/1 "%02x\ " "\ \ " 8/1 "%02x\ "」の意味はこうである。
++「まず、次に表示するバイトのオフセットを 8 桁の
++16 進数で、先頭を 0 で埋めて表示し、空白を 2 個続ける。それから、1 バイトずつ
++8 個 のデータを、2 桁の 16 進数で後ろに空白を付けて
++(つまり、空白で区切って) 表示し、空白を 2 個置いて、さらに 1 バイトずつ
++8 個のデータを、2 桁の 16 進数で空白で区切って表示せよ」。
++.sp
++3 行目の「"\ \ |" "%_p"」が指示しているのは、「2
++行目による出力にすぐ続けて、同じ出力行にまず '\ \ |'
++という文字列を表示し、それから、2 行目が処理したのと同じブロックに対して
++1 バイトずつ '_p' 変換をして (つまり、ASCII 文字で) 出力せよ」ということだ。
++3 行目は、「最後のフォーマット単位が、何バイトかを解釈・変換するものであり、
++しかも繰り返し回数が指定されていない」ので、ブロック全体の処理が済むまで、
++最後のフォーマット単位 "%_p" による処理が繰り返されることになる。
++.sp
++仮に、3 行目と 4 行目を 1 つにし、3 行目を「"\ \ |" "%_p" "|\en"」という形にすると、
++フォーマット文字列の「最後のフォーマット単位が、
++何バイトかを解釈・変換するもの」ではなくなるので、
++自動的な繰り返しの増加が行われないことになる。それ故、両者は別の行になっている。
++.sp
++4 行目は、データに対する処理は何も指定せず、「3 行目による出力のすぐ後ろに '|'
++という文字を書き出してから改行せよ」とだけ指示している。
++.sp
++このすべてが終わると、次のブロックに移って、同じ処理を繰り返していく。
++.sp
++結果として、\fBhexdump -f hexchar.fmt sample.txt\fP を実行すれば、
++\fBhexdump -C sample.txt\fP と同じ結果が得られるはずである。
diff --git a/manual/util-linux/po4a/man1/hexdump-ja.po b/manual/util-linux/po4a/man1/hexdump-ja.po
new file mode 100644 (file)
index 0000000..922fec9
--- /dev/null
@@ -0,0 +1,1043 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2019-12-08 10:43+0900\n"
+"PO-Revision-Date: 2020-04-13 11:51+0900\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Linux JM project <linuxjm-discuss@lists.osdn.me>\"\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: hexdump.man:34
+#, no-wrap
+msgid "HEXDUMP"
+msgstr "HEXDUMP"
+
+#. type: TH
+#: hexdump.man:34
+#, no-wrap
+msgid "April 2013"
+msgstr "April 2013"
+
+#. type: TH
+#: hexdump.man:34
+#, no-wrap
+msgid "util-linux"
+msgstr "util-linux"
+
+#. type: TH
+#: hexdump.man:34
+#, no-wrap
+msgid "User Commands"
+msgstr "User Commands"
+
+#. type: SH
+#: hexdump.man:35
+#, no-wrap
+msgid "NAME"
+msgstr "名前"
+
+#. type: Plain text
+#: hexdump.man:37
+msgid "hexdump - display file contents in hexadecimal, decimal, octal, or ascii"
+msgstr "hexdump - ファイルの内容を 16 進数、10 進数、8 進数、ASCII 文字で表示する"
+
+#. type: SH
+#: hexdump.man:37
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "書式"
+
+#. type: Plain text
+#: hexdump.man:40
+msgid "B<hexdump> [options]I< file>..."
+msgstr "B<hexdump> [options]I< file>..."
+
+#. type: SH
+#: hexdump.man:40
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "説明"
+
+#. type: Plain text
+#: hexdump.man:46
+msgid ""
+"The B<hexdump> utility is a filter which displays the specified files, or "
+"standard input if no files are specified, in a user-specified format."
+msgstr ""
+"B<hexdump> ユーティリティは、指定されたファイルをユーザーが指定したフォーマットで表示するフィルタである。\n"
+"ファイルが指定されていない場合は、標準入力を処理の対象にする。"
+
+#. type: SH
+#: hexdump.man:46
+#, no-wrap
+msgid "OPTIONS"
+msgstr "オプション"
+
+#. type: Plain text
+#: hexdump.man:51
+msgid ""
+"Below, the I<length> and I<offset> arguments may be followed by the "
+"multiplicative suffixes KiB (=1024), MiB (=1024*1024), and so on for GiB, "
+"TiB, PiB, EiB, ZiB and YiB (the \"iB\" is optional, e.g. \"K\" has the same "
+"meaning as \"KiB\"), or the suffixes KB (=1000), MB (=1000*1000), and so on "
+"for GB, TB, PB, EB, ZB and YB."
+msgstr ""
+"以下で使用する引き数 I<length> や I<offset>\n"
+"の後ろには、KiB (=1024), MiB (=1024*1024)\n"
+"のような乗数を表す接尾辞を付けることができる。GiB, TiB, PiB, EiB, ZiB, YiB\n"
+"も同様に使える (\"iB\" を続けるのは任意であり、たとえば、\"K\" は \"KiB\"\n"
+"と同じ意味だ)。また、KB (=1000), MB (=1000*1000)\n"
+"のような接尾辞を付けてもよい。GB, TB, PB, EB, ZB, YB も同様に使える。\n"
+
+#. type: TP
+#: hexdump.man:51
+#, no-wrap
+msgid "B<-b>, B<--one-byte-octal>"
+msgstr "B<-b>, B<--one-byte-octal>"
+
+#. type: Plain text
+#: hexdump.man:56
+msgid ""
+"I<One-byte octal display>.  Display the input offset in hexadecimal, "
+"followed by sixteen space-separated, three-column, zero-filled bytes of "
+"input data, in octal, per line."
+msgstr ""
+"I<1 バイト単位の 8 進数表示>。\n"
+"入力オフセットを 16 進数で表示し、その後に、入力データを 1 バイトずつ\n"
+"0 で字詰めした 3 桁の 8 進数で表現し、それを 1 行当たり 16 個、空白で区切って表示する。\n"
+
+#. type: TP
+#: hexdump.man:56
+#, no-wrap
+msgid "B<-c>, B<--one-byte-char>"
+msgstr "B<-c>, B<--one-byte-char>"
+
+#. type: Plain text
+#: hexdump.man:61
+msgid ""
+"I<One-byte character display>.  Display the input offset in hexadecimal, "
+"followed by sixteen space-separated, three-column, space-filled characters "
+"of input data per line."
+msgstr ""
+"I<1 バイト単位の ASCII 文字表示>。\n"
+"入力オフセットを 16 進数で表示し、その後に、入力データを\n"
+"1 キャラクタずつ、空白で字詰めした 3 桁の ASCII 文字で表現し、それを\n"
+"1 行当たり 16 個、空白で区切って表示する\n"
+"(訳注: 表示不能文字は、エスケープ表記が可能なものはエスケープ表記で、\n"
+"できないものは、3 桁の 8 進数で表示される)。"
+
+#. type: TP
+#: hexdump.man:61
+#, no-wrap
+msgid "B<-C>, B<--canonical>"
+msgstr "B<-C>, B<--canonical>"
+
+#. type: Plain text
+#: hexdump.man:70
+msgid ""
+"I<Canonical hex+ASCII display>.  Display the input offset in hexadecimal, "
+"followed by sixteen space-separated, two-column, hexadecimal bytes, followed "
+"by the same sixteen bytes in B<%_p> format enclosed in 'B<|>' characters."
+msgstr ""
+"I<標準的な 16 進数 + ASCII での表示>。\n"
+"入力オフセットを 16 進数で表示し、その後に、入力データを 1 バイトずつ\n"
+"2 桁の 16 進数で表現し、それを 1 行当たり 16 個、空白で区切って表示する。\n"
+"その後に、2 つの 'B<|>' で囲まれた中に同じ 16 バイトを\n"
+"B<%_p> フォーマットで表示する。"
+
+#. type: TP
+#: hexdump.man:70
+#, no-wrap
+msgid "B<-d>, B<--two-bytes-decimal>"
+msgstr "B<-d>, B<--two-bytes-decimal>"
+
+#. type: Plain text
+#: hexdump.man:75
+msgid ""
+"I<Two-byte decimal display>.  Display the input offset in hexadecimal, "
+"followed by eight space-separated, five-column, zero-filled, two-byte units "
+"of input data, in unsigned decimal, per line."
+msgstr ""
+"I<2 バイト単位の 10 進数表示>。\n"
+"入力オフセットを 16 進数で表示し、その後に、入力データを 2 バイトずつ 0 で字詰めした\n"
+"5 桁の符号なし 10 進数で表現し、それを 1 行当たり 8 個、空白で区切って表示する。\n"
+
+#. type: TP
+#: hexdump.man:75
+#, no-wrap
+msgid "B<-e>, B<--format> I<format_string>"
+msgstr "B<-e>, B<--format> I<format_string>"
+
+#. type: Plain text
+#: hexdump.man:78
+msgid "Specify a format string to be used for displaying data."
+msgstr ""
+"データを表示するために使われるフォーマット文字列を指定する\n"
+"(訳注: フォーマット文字列は、シングルクォート (' ') で囲む必要がある)。"
+
+#. type: TP
+#: hexdump.man:78
+#, no-wrap
+msgid "B<-f>, B<--format-file> I<file>"
+msgstr "B<-f>, B<--format-file> I<file>"
+
+#. type: Plain text
+#: hexdump.man:83
+msgid ""
+"Specify a file that contains one or more newline-separated format strings.  "
+"Empty lines and lines whose first non-blank character is a hash mark (\\&#)  "
+"are ignored."
+msgstr ""
+"1 個以上のフォーマット文字列を、改行で区切って書き込んだファイルを指定する。\n"
+"空行や、空白を除いた最初の文字がハッシュマーク (\\&#) である行は無視される\n"
+"(訳注: B<-e> オプションと違って、こちらでは、\n"
+"フォーマット文字列、すなわち各行をシングルクォートで囲んではいけない)。\n"
+
+#. type: TP
+#: hexdump.man:83
+#, no-wrap
+msgid "B<-L>, B<--color>[=I<when>]"
+msgstr "B<-L>, B<--color>[=I<when>]"
+
+#. type: Plain text
+#: hexdump.man:90
+msgid ""
+"Accept color units for the output.  The optional argument I<when> can be "
+"B<auto>, B<never> or B<always>.  If the I<when> argument is omitted, it "
+"defaults to B<auto>.  The colors can be disabled; for the current built-in "
+"default see the B<--help> output.  See also the B<Colors> subsection and the "
+"B<COLORS> section below."
+msgstr ""
+"フォーマット中のカラー指定単位 (color unit) を出力に使用する。\n"
+"指定が任意の引き数 I<when> は、B<auto>, B<never>, B<always>\n"
+"のいずれかである。引き数 I<when> を省略すると、デフォルトの B<auto> になる。\n"
+"カラー表示は、無効にすることもできる。\n"
+"プログラムに埋め込まれた現在のデフォルトが有効か無効かは、B<--help> の出力を見ればわかる。\n"
+"後述の「B<カラー指定>」サブセクションと「B<カラー表示>」セクションも参照していただきたい\n"
+"(訳注: 短いオプション B<-L> に引き数を付けるときは、間に空白を入れずに\n"
+"B<-Lalways> のように直接続けなければならない)。\n"
+
+#. type: TP
+#: hexdump.man:90
+#, no-wrap
+msgid "B<-n>, B<--length> I<length>"
+msgstr "B<-n>, B<--length> I<length>"
+
+#. type: Plain text
+#: hexdump.man:95
+msgid "Interpret only I<length> bytes of input."
+msgstr "入力の I<length> バイト分だけを処理する。"
+
+#. type: TP
+#: hexdump.man:95
+#, no-wrap
+msgid "B<-o>, B<--two-bytes-octal>"
+msgstr "B<-o>, B<--two-bytes-octal>"
+
+#. type: Plain text
+#: hexdump.man:100
+msgid ""
+"I<Two-byte octal display>.  Display the input offset in hexadecimal, "
+"followed by eight space-separated, six-column, zero-filled, two-byte "
+"quantities of input data, in octal, per line."
+msgstr ""
+"I<2 バイト単位の 8 進数表示>。\n"
+"入力オフセットを 16 進数で表示し、その後に、入力データを 2 バイトずつ 0 で字詰めした\n"
+"6 桁の 8 進数で表現し、それを 1 行当たり 8 個、空白で区切って表示する。\n"
+
+#. type: TP
+#: hexdump.man:100
+#, no-wrap
+msgid "B<-s>, B<--skip> I<offset>"
+msgstr "B<-s>, B<--skip> I<offset>"
+
+#. type: Plain text
+#: hexdump.man:105
+msgid "Skip I<offset> bytes from the beginning of the input."
+msgstr "入力の先頭から I<offset> バイトを読み飛ばす。\n"
+
+#. type: TP
+#: hexdump.man:105
+#, no-wrap
+msgid "B<-v>, B<--no-squeezing>"
+msgstr "B<-v>, B<--no-squeezing>"
+
+#. type: Plain text
+#: hexdump.man:116
+msgid ""
+"The B<-v> option causes B<hexdump> to display all input data.  Without the "
+"B<-v> option, any number of groups of output lines which would be identical "
+"to the immediately preceding group of output lines (except for the input "
+"offsets), are replaced with a line comprised of a single asterisk."
+msgstr ""
+"B<-v> オプションを指定すると、B<hexdump> は、入力データをすべて表示するようになる。\n"
+"B<-v> オプションを指定しない場合は、直前の出力行と (入力オフセット以外が)\n"
+"同じ内容の行は、何行であっても、ただ 1 個のアスタリスクからなる\n"
+"1 行に置き換えられる。"
+
+#. type: TP
+#: hexdump.man:116
+#, no-wrap
+msgid "B<-x>, B<--two-bytes-hex>"
+msgstr "B<-x>, B<--two-bytes-hex>"
+
+#. type: Plain text
+#: hexdump.man:121
+msgid ""
+"I<Two-byte hexadecimal display>.  Display the input offset in hexadecimal, "
+"followed by eight space-separated, four-column, zero-filled, two-byte "
+"quantities of input data, in hexadecimal, per line."
+msgstr ""
+"I<2 バイト単位の 16 進数表示>。\n"
+"入力オフセットを 16 進数で表示し、その後に、入力データを 2 バイトずつ 0 で字詰めした\n"
+"4 桁の 16 進数で表現し、それを 1 行当たり 8 個、空白で区切って表示する。\n"
+
+#. type: TP
+#: hexdump.man:121
+#, no-wrap
+msgid "B<-V>,B< --version>"
+msgstr "B<-V>,B< --version>"
+
+#. type: Plain text
+#: hexdump.man:124
+msgid "Display version information and exit."
+msgstr "バージョン情報を表示して、終了する。"
+
+#. type: TP
+#: hexdump.man:124
+#, no-wrap
+msgid "B<-h>,B< --help>"
+msgstr "B<-h>,B< --help>"
+
+#. type: Plain text
+#: hexdump.man:127
+msgid "Display help text and exit."
+msgstr "ヘルプを表示して、終了する。"
+
+#. type: Plain text
+#: hexdump.man:136
+msgid ""
+"For each input file, B<hexdump> sequentially copies the input to standard "
+"output, transforming the data according to the format strings specified by "
+"the B<-e> and B<-f> options, in the order that they were specified."
+msgstr ""
+"各入力ファイルに対して、B<hexdump> は、入力を B<-e> や B<-f>\n"
+"オプションで指定されたフォーマット文字列に従い、\n"
+"フォーマット文字列が指定された順序でデータを変換しながら、標準出力に順次書き出していく。"
+
+#. type: SH
+#: hexdump.man:136
+#, no-wrap
+msgid "FORMATS"
+msgstr "フォーマット"
+
+#. type: Plain text
+#: hexdump.man:140
+msgid ""
+"A format string contains any number of format units, separated by "
+"whitespace.  A format unit contains up to three items: an iteration count, a "
+"byte count, and a format."
+msgstr ""
+"フォーマット文字列は、空白 (またはタブ)\n"
+"で区切られた任意の数のフォーマット単位から構成される。1 つのフォーマット単位は、最大で\n"
+"3 個の要素、すなわち、繰り返し回数、バイト数、フォーマットを含んでいる。\n"
+
+#. type: Plain text
+#: hexdump.man:143
+msgid ""
+"The iteration count is an optional positive integer, which defaults to one.  "
+"Each format is applied iteration count times."
+msgstr ""
+"繰り返し回数は、指定が任意の (訳注: すなわち、省略可能な)\n"
+"正の整数であり、デフォルトは 1 である。各フォーマットは繰り返し回数だけ適用される。\n"
+
+#. type: Plain text
+#: hexdump.man:146
+msgid ""
+"The byte count is an optional positive integer.  If specified it defines the "
+"number of bytes to be interpreted by each iteration of the format."
+msgstr ""
+"バイト数も、指定が任意の正の整数である。これが指定されている場合は、そのフォーマットを\n"
+"1 回適用するごとに処理するバイト数を示している。"
+
+#. type: Plain text
+#: hexdump.man:150
+msgid ""
+"If an iteration count and/or a byte count is specified, a single slash must "
+"be placed after the iteration count and/or before the byte count to "
+"disambiguate them.  Any whitespace before or after the slash is ignored."
+msgstr ""
+"繰り返し回数やバイト数を指定する場合、どちらの数字か区別できるように、\n"
+"繰り返し回数の後や、バイト数の前にスラッシュを 1 個置かなければならない。\n"
+"スラッシュの前後に空白があっても、無視される。"
+
+#. type: Plain text
+#: hexdump.man:155
+msgid ""
+"The format is required and must be surrounded by double quote (\" \") "
+"marks.  It is interpreted as a fprintf-style format string (see "
+"B<fprintf>(3), with the following exceptions:"
+msgstr ""
+"フォーマットは必須で、ダブルクォート (\" \") で囲まなければならない。\n"
+"このフォーマットは、fprintf 形式のフォーマット文字列\n"
+"(B<fprintf>(3) を参照) として解釈されるが、以下のような例外がある。"
+
+#. type: TP
+#: hexdump.man:155
+#, no-wrap
+msgid "1."
+msgstr "1."
+
+#. type: Plain text
+#: hexdump.man:158
+msgid "An asterisk (*) may not be used as a field width or precision."
+msgstr "フィールドの幅や精度としてアスタリスク (*) を使えない。"
+
+#. type: TP
+#: hexdump.man:158
+#, no-wrap
+msgid "2."
+msgstr "2."
+
+#. type: Plain text
+#: hexdump.man:167
+msgid ""
+"A byte count or field precision I<is> required for each B<s> conversion "
+"character (unlike the B<fprintf>(3)  default which prints the entire string "
+"if the precision is unspecified)."
+msgstr ""
+"変換文字 B<s> のそれぞれについて、バイト数かフィールド精度が必要である。\n"
+"(その点が、精度が指定されていない場合に全ての文字列を表示する B<fprintf>(3)\n"
+"のデフォルトとは異なる)。"
+
+#. type: TP
+#: hexdump.man:167
+#, no-wrap
+msgid "3."
+msgstr "3."
+
+#. type: Plain text
+#: hexdump.man:173
+msgid ""
+"The conversion characters B<h>,B<\\ l>,B<\\ n>,B<\\ p>, andB<\\ q> are not "
+"supported."
+msgstr "変換文字 B<h>,B<\\ l>,B<\\ n>,B<\\ p>,B<\\ q> がサポートされていない。"
+
+#. type: TP
+#: hexdump.man:173
+#, no-wrap
+msgid "4."
+msgstr "4."
+
+#. type: Plain text
+#: hexdump.man:177
+msgid ""
+"The single character escape sequences described in the C standard are "
+"supported:"
+msgstr ""
+"C 言語の規格に書かれている\n"
+"1 文字のエスケープシーケンスがサポートされている:"
+
+#. type: TP
+#: hexdump.man:180
+#, no-wrap
+msgid "NULL"
+msgstr "NULL"
+
+#. type: Plain text
+#: hexdump.man:183
+msgid "\\e0"
+msgstr "\\e0"
+
+#. type: TP
+#: hexdump.man:183
+#, no-wrap
+msgid "E<lt>alert characterE<gt>"
+msgstr "E<lt>アラート文字E<gt>"
+
+#. type: Plain text
+#: hexdump.man:186
+msgid "\\ea"
+msgstr "\\ea"
+
+#. type: TP
+#: hexdump.man:186
+#, no-wrap
+msgid "E<lt>backspaceE<gt>"
+msgstr "バックスペース"
+
+#. type: Plain text
+#: hexdump.man:189
+msgid "\\eb"
+msgstr "\\eb"
+
+#. type: TP
+#: hexdump.man:189
+#, no-wrap
+msgid "E<lt>form-feedE<gt>"
+msgstr "フォームフィード"
+
+#. type: Plain text
+#: hexdump.man:192
+msgid "\\ef"
+msgstr "\\ef"
+
+#. type: TP
+#: hexdump.man:192
+#, no-wrap
+msgid "E<lt>newlineE<gt>"
+msgstr "改行"
+
+#. type: Plain text
+#: hexdump.man:195
+msgid "\\en"
+msgstr "\\en"
+
+#. type: TP
+#: hexdump.man:195
+#, no-wrap
+msgid "E<lt>carriage returnE<gt>"
+msgstr "復帰"
+
+#. type: Plain text
+#: hexdump.man:198
+msgid "\\er"
+msgstr "\\er"
+
+#. type: TP
+#: hexdump.man:198
+#, no-wrap
+msgid "E<lt>tabE<gt>"
+msgstr "タブ"
+
+#. type: Plain text
+#: hexdump.man:201
+msgid "\\et"
+msgstr "\\et"
+
+#. type: TP
+#: hexdump.man:201
+#, no-wrap
+msgid "E<lt>vertical tabE<gt>"
+msgstr "垂直タブ"
+
+#. type: Plain text
+#: hexdump.man:204
+msgid "\\ev"
+msgstr "\\ev"
+
+#. type: SS
+#: hexdump.man:207
+#, no-wrap
+msgid "Conversion strings"
+msgstr "変換文字列"
+
+#. type: Plain text
+#: hexdump.man:211
+msgid ""
+"The B<hexdump> utility also supports the following additional conversion "
+"strings."
+msgstr "B<hexdump> ユーティリティは、さらに以下の変換文字列もサポートしている:"
+
+#. type: TP
+#: hexdump.man:211
+#, no-wrap
+msgid "B<\\&_a[dox]>"
+msgstr "B<\\&_a[dox]>"
+
+#. type: Plain text
+#: hexdump.man:220
+msgid ""
+"Display the input offset, cumulative across input files, of the next byte to "
+"be displayed.  The appended characters B<d>, B<o>, and B<x> specify the "
+"display base as decimal, octal or hexadecimal respectively."
+msgstr ""
+"次に表示されるバイトの入力オフセット (複数の入力ファイルで通算した値) を表示する。\n"
+"文字 B<d>, B<o>, B<x> を後ろに付けると、オフセットの表示がそれぞれ\n"
+"10, 8, 16 進数になる。"
+
+#. type: TP
+#: hexdump.man:220
+#, no-wrap
+msgid "B<\\&_A[dox]>"
+msgstr "B<\\&_A[dox]>"
+
+#. type: Plain text
+#: hexdump.man:226
+msgid ""
+"Identical to the B<\\&_a> conversion string except that it is only performed "
+"once, when all of the input data has been processed."
+msgstr ""
+"変換文字列 B<\\&_a> とほぼ同じ。ただし、この変換は全ての入力データが処理された後で\n"
+"1 回だけ実行される。\n"
+
+#. type: TP
+#: hexdump.man:226
+#, no-wrap
+msgid "B<\\&_c>"
+msgstr "B<\\&_c>"
+
+#. type: Plain text
+#: hexdump.man:232
+msgid ""
+"Output characters in the default character set.  Non-printing characters are "
+"displayed in three-character, zero-padded octal, except for those "
+"representable by standard escape notation (see above), which are displayed "
+"as two-character strings."
+msgstr ""
+"デフォルト文字セットの文字で出力する。表示不能な文字は、0 で字詰めした\n"
+"3 桁の 8 進数で表示される。ただし、標準エスケープ表記で表現できる文字\n"
+"(上記を参照) は、その 2 文字の文字列で表示される。"
+
+#. type: TP
+#: hexdump.man:232
+#, no-wrap
+msgid "B<\\&_p>"
+msgstr "B<\\&_p>"
+
+#. type: Plain text
+#: hexdump.man:237
+msgid ""
+"Output characters in the default character set.  Non-printing characters are "
+"displayed as a single 'B<\\&.>'."
+msgstr "デフォルト文字セットの文字で出力する。表示不能な文字は、1 個の 'B<\\&.>' として表示される。\n"
+
+#. type: TP
+#: hexdump.man:237
+#, no-wrap
+msgid "B<\\&_u>"
+msgstr "B<\\&_u>"
+
+#. type: Plain text
+#: hexdump.man:242
+msgid ""
+"Output US ASCII characters, with the exception that control characters are "
+"displayed using the following, lower-case, names.  Characters greater than "
+"0xff, hexadecimal, are displayed as hexadecimal strings."
+msgstr ""
+"US ASCII 文字で出力する。\n"
+"ただし、制御文字は以下のような小文字の名前を使って表示される。\n"
+"16 進数で 0x7f より大きい文字は、16 進数の文字列として表示される。\n"
+
+#. type: tbl table
+#: hexdump.man:246
+#, no-wrap
+msgid "000 nul|001 soh|002 stx|003 etx|004 eot|005 enq"
+msgstr "000 nul|001 soh|002 stx|003 etx|004 eot|005 enq"
+
+#. type: tbl table
+#: hexdump.man:247
+#, no-wrap
+msgid "006 ack|007 bel|008 bs|009 ht|00A lf|00B vt"
+msgstr "006 ack|007 bel|008 bs|009 ht|00A lf|00B vt"
+
+#. type: tbl table
+#: hexdump.man:248
+#, no-wrap
+msgid "00C ff|00D cr|00E so|00F si|010 dle|011 dc1"
+msgstr "00C ff|00D cr|00E so|00F si|010 dle|011 dc1"
+
+#. type: tbl table
+#: hexdump.man:249
+#, no-wrap
+msgid "012 dc2|013 dc3|014 dc4|015 nak|016 syn|017 etb"
+msgstr "012 dc2|013 dc3|014 dc4|015 nak|016 syn|017 etb"
+
+#. type: tbl table
+#: hexdump.man:250
+#, no-wrap
+msgid "018 can|019 em|01A sub|01B esc|01C fs|01D gs"
+msgstr "018 can|019 em|01A sub|01B esc|01C fs|01D gs"
+
+#. type: tbl table
+#: hexdump.man:251
+#, no-wrap
+msgid "01E rs|01F us|0FF del"
+msgstr "01E rs|01F us|07F del"
+
+#. type: SS
+#: hexdump.man:253
+#, no-wrap
+msgid "Colors"
+msgstr "カラー指定"
+
+#. type: Plain text
+#: hexdump.man:257
+msgid ""
+"When put at the end of a format specifier, hexdump highlights the respective "
+"string with the color specified.  Conditions, if present, are evaluated "
+"prior to highlighting."
+msgstr ""
+"フォーマット指定子 (訳注: 変換文字や変換文字列)\n"
+"の末尾にカラー指定を追加すると、hexdump は、対応する文字列\n"
+"(訳注: たいていは 16 進数などの数値) を指定された色でハイライトする。\n"
+"条件が存在する場合は、ハイライトする前に評価される\n"
+"(訳注: カラー指定の実例については、「B<用例>」セクションの\n"
+"3 番目の例をご覧になっていただきたい)。"
+
+#. type: Plain text
+#: hexdump.man:259
+msgid "B<\\&_L[color_unit_1,\\:color_unit_2,\\:...,\\:color_unit_n]>"
+msgstr "B<\\&_L[color_unit_1,\\:color_unit_2,\\:...,\\:color_unit_n]>"
+
+#. type: Plain text
+#: hexdump.man:261
+msgid "The full syntax of a color unit is as follows:"
+msgstr "カラー指定単位 (color unit) の完全な書式は以下のとおりである:"
+
+#. type: Plain text
+#: hexdump.man:263
+msgid "B<[!]COLOR\\:[:VALUE]\\:[@OFFSET_START[-END]]>"
+msgstr "B<[!]COLOR\\:[:VALUE]\\:[@OFFSET_START[-END]]>"
+
+#. type: TP
+#: hexdump.man:263
+#, no-wrap
+msgid "B<!>"
+msgstr "B<!>"
+
+#. type: Plain text
+#: hexdump.man:269
+msgid ""
+"Negate the condition.  Please note that it only makes sense to negate a unit "
+"if both a value/\\:string and an offset are specified.  In that case the "
+"respective output string will be highlighted if and only if the "
+"value/\\:string does not match the one at the offset."
+msgstr ""
+"条件を否定する。\n"
+"注意していただきたいが、あるカラー指定単位について否定することに意味があるのは、\n"
+"値/\\:文字列と、オフセットの両方を指定したときだけである。\n"
+"その場合は、値/\\:文字列がそのオフセットにあるものとマッチしなかったときにのみ、\n"
+"対応する出力文字列がハイライトされることになる。"
+
+#. type: TP
+#: hexdump.man:269
+#, no-wrap
+msgid "B<COLOR>"
+msgstr "B<COLOR>"
+
+#. type: Plain text
+#: hexdump.man:272
+msgid "One of the 8 basic shell colors."
+msgstr "シェルで使われる 8 種の基本色の 1 つ。"
+
+#. type: TP
+#: hexdump.man:272
+#, no-wrap
+msgid "B<VALUE>"
+msgstr "B<VALUE>"
+
+#. type: Plain text
+#: hexdump.man:277
+msgid ""
+"A value to be matched specified in hexadecimal, or octal base, or as a "
+"string.  Please note that the usual C escape sequences are not interpreted "
+"by hexdump inside the color_units."
+msgstr ""
+"マッチすべき値。16 進数、8 進数、または文字列で指定する。\n"
+"hexdump はカラー指定単位の中では、通常の\n"
+"C 言語のエスケープシーケンスを解釈しないことに注意していただきたい。"
+
+#. type: TP
+#: hexdump.man:277
+#, no-wrap
+msgid "B<OFFSET>"
+msgstr "B<OFFSET>"
+
+#. type: Plain text
+#: hexdump.man:281
+msgid ""
+"An offset or an offset range at which to check for a match.  Please note "
+"that lone OFFSET_START uses the same value as END offset."
+msgstr ""
+"マッチするか否かをチェックするオフセット、またはオフセットの範囲\n"
+"(訳注: このオフセットは 10 進数で指定するようだ)。OFFSET_START\n"
+"だけ指定すると、END オフセットが同じ値になることに注意していただきたい。"
+
+#. type: SS
+#: hexdump.man:281
+#, no-wrap
+msgid "Counters"
+msgstr "処理されるバイト数"
+
+#. type: Plain text
+#: hexdump.man:284
+msgid ""
+"The default and supported byte counts for the conversion characters are as "
+"follows:"
+msgstr "変換文字で使われるデフォルトのバイト数とサポートされるバイト数は、以下の通りである。"
+
+#. type: TP
+#: hexdump.man:284
+#, no-wrap
+msgid "B<\\&%_c>,B<\\ \\&%_p>,B<\\ \\&%_u>,B<\\ \\&%c>"
+msgstr "B<\\&%_c>,B<\\ \\&%_p>,B<\\ \\&%_u>,B<\\ \\&%c>"
+
+#. type: Plain text
+#: hexdump.man:287
+msgid "One byte counts only."
+msgstr "1 バイトのみ。"
+
+#. type: TP
+#: hexdump.man:287
+#, no-wrap
+msgid "B<\\&%d>,B<\\ \\&%i>,B<\\ \\&%o>,B<\\ \\&%u>,B<\\ \\&%X>,B<\\ \\&%x>"
+msgstr "B<\\&%d>,B<\\ \\&%i>,B<\\ \\&%o>,B<\\ \\&%u>,B<\\ \\&%X>,B<\\ \\&%x>"
+
+#. type: Plain text
+#: hexdump.man:290
+msgid "Four byte default, one, two and four byte counts supported."
+msgstr "4 バイトがデフォルト。1, 2, 4 バイトがサポートされている。"
+
+#. type: TP
+#: hexdump.man:290
+#, no-wrap
+msgid "B<\\&%E>,B<\\ \\&%e>,B<\\ \\&%f>,B<\\ \\&%G>,B<\\ \\&%g>"
+msgstr "B<\\&%E>,B<\\ \\&%e>,B<\\ \\&%f>,B<\\ \\&%G>,B<\\ \\&%g>"
+
+#. type: Plain text
+#: hexdump.man:293
+msgid "Eight byte default, four byte counts supported."
+msgstr "8 バイトがデフォルト。4 バイトがサポートされている。"
+
+#. type: Plain text
+#: hexdump.man:298
+msgid ""
+"The amount of data interpreted by each format string is the sum of the data "
+"required by each format unit, which is the iteration count times the byte "
+"count, or the iteration count times the number of bytes required by the "
+"format if the byte count is not specified."
+msgstr ""
+"各フォーマット文字列によって解釈・変換されるデータの量は、\n"
+"各フォーマット単位が要求するデータの合計である。\n"
+"各フォーマット単位が要求するデータは、(繰り返し回数) x (バイト数) である。\n"
+"バイト数が指定されていない場合は、\n"
+"(繰り返し回数) x (そのフォーマットが要求するバイト数) になる。\n"
+
+#. type: Plain text
+#: hexdump.man:307
+msgid ""
+"The input is manipulated in I<blocks>, where a block is defined as the "
+"largest amount of data specified by any format string.  Format strings "
+"interpreting less than an input block's worth of data, whose last format "
+"unit both interprets some number of bytes and does not have a specified "
+"iteration count, have the iteration count incremented until the entire input "
+"block has been processed or there is not enough data remaining in the block "
+"to satisfy the format string."
+msgstr ""
+"入力は I<ブロック> 単位で処理される。ここで言うブロックとは、\n"
+"フォーマット文字列のいずれかによって指定されるデータの量のうちで、\n"
+"最大のもののことである (訳注: そのようにブロックの大きさが決まると、\n"
+"複数のフォーマット文字列が指定されている場合は、\n"
+"その各フォーマット文字列が、同じ 1 つの処理単位 (つまり、I<ブロック>)\n"
+"に繰り返し適用されることになる)。入力ブロック\n"
+"1 個分のデータより少ないバイト数しか解釈しないフォーマット文字列については、\n"
+"I<その最後のフォーマット単位>が、何バイトかを解釈・変換するものであり、\n"
+"しかも繰り返し回数がI<指定されていない>ならば、\n"
+"その繰り返し回数を増加させて、入力ブロック全体の処理が済むか、\n"
+"あるいは、フォーマット文字列の要求を満たすだけのデータがブロックになくなるまで、処理を続ける。\n"
+
+#. type: Plain text
+#: hexdump.man:313
+msgid ""
+"If, either as a result of user specification or B<hexdump> modifying the "
+"iteration count as described above, an iteration count is greater than one, "
+"no trailing whitespace characters are output during the last iteration."
+msgstr ""
+"ユーザの指定によって、あるいは、上述のように B<hexdump>\n"
+"が繰り返し回数を変更していることによって、繰り返し回数が\n"
+"2 回以上になっている場合は、(訳注: そのフォーマット単位で、たとえば\n"
+"'8/1 \"%02x \"' や '\"%_p \"'\n"
+"のように、各出力項目の末尾に空白を追加することになっていても)\n"
+"最後の繰り返しにおける末尾の空白は出力されない。\n"
+
+#. type: Plain text
+#: hexdump.man:320
+msgid ""
+"It is an error to specify a byte count as well as multiple conversion "
+"characters or strings unless all but one of the conversion characters or "
+"strings is B<\\&_a> or B<\\&_A>."
+msgstr ""
+"フォーマット単位で、バイト数とともに複数の変換文字や変換文字列を指定するのは誤用である。\n"
+"ただし、変換文字や変換文字列の 1 つ以外のすべてが、\n"
+"B<\\&_a> や B<\\&_A> であるときは、問題がない。\n"
+
+#. type: Plain text
+#: hexdump.man:327
+msgid ""
+"If, as a result of the specification of the B<-n> option or end-of-file "
+"being reached, input data only partially satisfies a format string, the "
+"input block is zero-padded sufficiently to display all available data "
+"(i.e. any format units overlapping the end of data will display some number "
+"of the zero bytes)."
+msgstr ""
+"B<-n> オプションを指定したり、ファイルの終わりに達したために、\n"
+"入力データがフォーマット文字列の一部しか満たさなかった場合、\n"
+"その入力ブロックには、利用できるすべてのデータを表示するのに足りるだけのゼロバイト\n"
+"(ASCII NUL) が補われる\n"
+"(換言すると、フォーマット単位が、データの末尾からはみ出している場合、\n"
+"そのフォーマット単位は、いくつかのゼロバイトを表示することになる)。"
+
+#. type: Plain text
+#: hexdump.man:338
+msgid ""
+"Further output by such format strings is replaced by an equivalent number of "
+"spaces.  An equivalent number of spaces is defined as the number of spaces "
+"output by an B<s> conversion character with the same field width and "
+"precision as the original conversion character or conversion string but with "
+"any 'B<\\&+>', \\' \\', 'B<\\&#>' conversion flag characters removed, and "
+"referencing a NULL string."
+msgstr ""
+"そうしたフォーマット文字列による追加の出力は、相当する数の空白で置き換えられる。\n"
+"相当する数の空白というのは、B<s>\n"
+"変換文字が、実際に指定されている変換文字や変換文字列と同じフィールド幅と精度を持ち、\n"
+"'B<\\&+>', \\' \\', 'B<\\&#>'\n"
+"と言った変換フラグが付いていれば、それを取り除いたときに、\n"
+"NULL 文字列に対して出力する数の空白のことである。"
+
+#. type: Plain text
+#: hexdump.man:342
+msgid ""
+"If no format strings are specified, the default display is very similar to "
+"the B<-x> output format (the B<-x> option causes more space to be used "
+"between format units than in the default output)."
+msgstr ""
+"フォーマット文字列が指定されていない場合、デフォルトの表示は、B<-x>\n"
+"オプションの出力形式とよく似たものになる (ただし、B<-x>\n"
+"オプションを付けた方が、フォーマット単位間のスペースがデフォルトの出力より広くなる)。\n"
+
+#. type: SH
+#: hexdump.man:342
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "終了ステータス"
+
+#. type: Plain text
+#: hexdump.man:345
+msgid "B<hexdump> exits 0 on success and E<gt>0 if an error occurred."
+msgstr ""
+"B<hexdump> は成功すると 0 を返して終了する。\n"
+"エラーが起きた場合は、1 以上を返して終了する。"
+
+#. type: SH
+#: hexdump.man:345
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "用例"
+
+#. type: Plain text
+#: hexdump.man:347
+msgid "Display the input in perusal format:"
+msgstr "入力を「ためつすがめつ見直し」フォーマットで表示する:"
+
+#. type: Plain text
+#: hexdump.man:351
+#, no-wrap
+msgid ""
+"   \"%06.6_ao \"  12/1 \"%3_u \"\n"
+"   \"\\et\\et\" \"%_p \"\n"
+"   \"\\en\"\n"
+msgstr ""
+"   \"%06.6_ao \"  12/1 \"%3_u \"\n"
+"   \"\\et\\et\" \"%_p \"\n"
+"   \"\\en\"\n"
+
+#. type: Plain text
+#: hexdump.man:354
+#, no-wrap
+msgid "Implement the -x option:\n"
+msgstr "-x オプションを実装する:\n"
+
+#. type: Plain text
+#: hexdump.man:357
+#, no-wrap
+msgid ""
+"   \"%07.7_Ax\\en\"\n"
+"   \"%07.7_ax  \" 8/2 \"%04x \" \"\\en\"\n"
+msgstr ""
+"   \"%07.7_Ax\\en\"\n"
+"   \"%07.7_ax  \" 8/2 \"%04x \" \"\\en\"\n"
+
+#. type: Plain text
+#: hexdump.man:361
+#, no-wrap
+msgid ""
+"MBR Boot Signature example: Highlight the addresses cyan and the bytes at\n"
+"offsets 510 and 511 green if their value is 0xAA55, red otherwise.\n"
+msgstr ""
+"MBR ブートシグネチャの例: アドレスをシアンで、オフセット 510 と 511\n"
+"にあるバイトの値が 0xAA55 の場合は緑、その他の場合は赤でハイライトする。\n"
+
+#. type: Plain text
+#: hexdump.man:364
+#, no-wrap
+msgid ""
+"   \"%07.7_Ax_L[cyan]\\en\"\n"
+"   \"%07.7_ax_L[cyan]  \" 8/2 \"   "
+"%04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] \" \"\\en\"\n"
+msgstr ""
+"   \"%07.7_Ax_L[cyan]\\en\"\n"
+"   \"%07.7_ax_L[cyan]  \" 8/2 \"   %04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] \" \"\\en\"\n"
+
+#. type: SH
+#: hexdump.man:365
+#, no-wrap
+msgid "COLORS"
+msgstr "カラー表示"
+
+#. type: Plain text
+#: hexdump.man:367
+msgid ""
+"Implicit coloring can be disabled by an empty file "
+"I</etc/terminal-colors.d/hexdump.disable>."
+msgstr ""
+"空ファイル I</etc/terminal-colors.d/hexdump.disable>\n"
+"を置くことで、暗黙のカラー表示を無効化できる。\n"
+
+#. type: Plain text
+#: hexdump.man:371
+msgid ""
+"See B<terminal-colors.d>(5)  for more details about colorization "
+"configuration."
+msgstr "カラー設定の詳細については B<terminal-colors.d>(5) を参照していただきたい。\n"
+
+#. type: SH
+#: hexdump.man:371
+#, no-wrap
+msgid "STANDARDS"
+msgstr "規格"
+
+#. type: Plain text
+#: hexdump.man:375
+msgid ""
+"The B<hexdump> utility is expected to be IEEE Std 1003.2 (\"POSIX.2\") "
+"compatible."
+msgstr ""
+"B<hexdump> ユーティリティは IEEE Std 1003.2 (\"POSIX.2\")\n"
+"に適合しているはずである。\n"
+
+#. type: SH
+#: hexdump.man:375
+#, no-wrap
+msgid "AVAILABILITY"
+msgstr "入手方法"
+
+#. type: Plain text
+#: hexdump.man:379
+msgid ""
+"The hexdump command is part of the util-linux package and is available from "
+"E<.UR https://\\:www.kernel.org\\:/pub\\:/linux\\:/utils\\:/util-linux/> "
+"Linux Kernel Archive E<.UE .>"
+msgstr ""
+"この hexdump コマンドは、util-linux パッケージの一部であり、\n"
+"E<.UR https://\\:www.kernel.org\\:/pub\\:/linux\\:/utils\\:/util-linux/> \n"
+"Linux Kernel Archive E<.UE> から入手できる。\n"
index 2c5256f..07d4f36 100644 (file)
@@ -1,5 +1,34 @@
+.\" getopt.c - Enhanced implementation of BSD getopt(1)
+.\" Copyright (c) 1997-2014 Frodo Looijaard <frodo@frodo.looijaard.name>
 .\"
-.\" Japanese Version Copyright (c) 2001-2003 Yuichi SATO
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License along
+.\" with this program; if not, write to the Free Software Foundation, Inc.,
+.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
+.\" The original version of this translation was contributed 
+.\" to Linux JM project from NetBSD jman proj.
+.\"
+.\" The copyright for the modified parts of the translation blongs to us
+.\" with Linux JM project.
+.\"
+.\" Japanese Version Copyright for the modified parts (c) 2001-2020 Yuichi SATO
+.\"   and 2020 Yoichi Chonan,
 .\"         all rights reserved.
 .\" Translated Tue 11 Jan 1994
 .\"         by NetBSD jman proj. <jman@spa.is.uec.ac.jp>
 .\"         by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
 .\" Updated & Modified Sun Mar  2 15:11:49 JST 2003
 .\"         by Yuichi SATO <ysato444@yahoo.co.jp>
+.\" Updated & Modified (util-linux 2.34) Tue Apr 14 12:34:43 JST 2020
+.\"         by Yuichi SATO <ysato444@ybb.ne.jp>
+.\"         and Yoichi Chonan <cyoichi@maple.ocn.ne.jp>
 .\"
-.\"WORD:       parse           解析する
-.\"WORD:       interpret       解釈する
-.\"
-.TH GETOPT 1 "May 31, 1997" Linux ""
+.TH GETOPT 1 "December 2014" util\-linux "User Commands"
 .SH 名前
-getopt \- コマンドの引き数を解析する (拡張版)
+getopt \- コマンドのオプションを解析する (強化版)
 .SH 書式
-.BR getopt " optstring parameters"
-
-.BR getopt " [options] [" \-\- "] optstring parameters"
-
-.BR getopt " [options] " \-o | \-\-options " optstring [options] [" \-\- "] parameters"
+\fBgetopt\fP \fIoptstring parameters\fP
+.br
+\fBgetopt\fP [options] [\fB\-\-\fP] \fIoptstring parameters\fP
+.br
+\fBgetopt\fP [options] \fB\-o\fP|\fB\-\-options\fP \fIoptstring\fP [options] [\fB\-\-\fP]
+\fIparameters\fP
 .SH 説明
-.B getopt
-は、シェル手続きで簡単に解析できるように、
-コマンドラインのオプションを分解
-.RI ( 解析 )
-するために使われる。
-また、正しいオプションであるかを調べるためにも使われる。
-これを行うために
+\fBgetopt\fP を使えば、コマンドラインのオプションを分解 (\fI構文解析\fP) して、
+シェル上の処理による解析作業を容易にしたり、
+オプションが有効かどうかをチェックしたりすることができる。
+\fBgetopt\fP は、そうしたことのために
 .SM GNU
-.BR getopt (3) 
-ルーチンが使われる。
-
-.B getopt
-を呼び出すときに使われたパラメータは、
-2 つの部分に分けることができる:
-getopt の解析動作を変更するオプション
-.RB ( 「書式」
-セクションの
-.I options
-と
-.IR "\-o|\-\-options optstring" )
-と、解析されるパラメータ
-.RB ( 「書式」
-セクションの
-.IR parameters )
-である。
-第 2 部分は、
-最初のオプションではないパラメータ
-(オプション引き数ではないもの) の後か、
-最初の
-.B ` \-\- '
-の後から始まる。
-第 1 部分に
-.RB ` \-o ' 
-または
-.RB ` \-\-options '
-オプションが見つからない場合、
-第 2 部分の最初のパラメータは
-短い形式のオプション文字列として使われる。
-
-環境変数
-.B GETOPT_COMPATIBLE
-が設定された場合、
-または最初のパラメータがオプションでなかった場合
-.RB (` \- '
-で始まっていない場合。
-これは
-.B 「書式」
-セクションの最初の形式である)、
-.B getopt
-は他のバージョンの
-.BR getopt (1)
-と互換性のある出力を生成する。
-この場合でも、パラメータの並べ替えを行い、オプション引き数を認識する
-(詳細は
-.B 「互換性」
-セクションを参照すること)。
-
-伝統的な
-.BR getopt (1)
-の実装では、引き数やオプションではないパラメータで
-空白と他の (シェル特有の) 特殊文字を組み合わせて使うことができない。
-この問題を解決するため、
-この実装ではクォートした出力を生成する。
-この出力は、シェル (通常は
-.B eval
-コマンドが使われる) によって再び解析されなければならない。
-これにはクォートすべき文字列を保護するという効果があるが、
-.B getopt
-を他のバージョンとは互換性のない方法
-.RB ( 「書式」
-セクションの 2, 3 番目の形式) で呼び出さなければならない。
-拡張版の
-.BR getopt (1)
-がインストールされているかどうかを調べるには、特別なテストオプション
-.RB ( \-T ) 
-を使うことができる。
+\fBgetopt\fP(3)
+のルーティンを使用している。
+.PP
+\fBgetopt\fP を呼び出すときに使用するパラメータは、2 つの部分に分けることができる。
+すなわち、\fBgetopt\fP が解析を行うときの動作を変更するオプション部分
+(上記「\fB書式\fP」の \fIoptions\fP と \fIopstring\fP) と、解析の対象になるパラメータ部分
+(上記「\fB書式\fP」の \fIparameters\fP) の 2 つである。2 番目の部分は、
+オプションではない最初のパラメータで、オプションの引き数でもないものから始まるか、
+あるいは、'\fB\-\-\fP' が最初に現れた位置の直後から始まる。なお、1 番目の部分に
+\&'\fB\-o\fP' オプションや '\fB\-\-options\fP' オプションが存在しない場合は、2
+番目の部分の最初のパラメータが、解析の対象となるショートオプションを
+1 つにまとめたショートオプションズ文字列 (すなわち \fIoptsting\fP) として使用される
+(訳注: これは 2 番目の書式のことである)。
+.IP "[\fB訳注\fP]"
+第 3 の書式で、解析の対象になるパラメータをオプションから始めるときは、その前に
+\&'\fB\-\-\fP' を置かなければならないことに気を付けていただきたい。
+そうしないと、\fBgetopt\fP 自体のオプションと誤解されることになる。
+解析の対象をファイル名などから始めるときは、'\fB\-\-\fP' を置かなくてもよい。
+.PP
+環境変数 \fBGETOPT_COMPATIBLE\fP
+が設定されている場合や、最初のパラメータがオプションではない場合 (すなわち、'\fB\-\fP'
+で始まっていない場合で、これは「\fB書式\fP」の第 1 の形式である)、この
+\fBgetopt\fP は他のバージョンの \fBgetopt\fP(1) と互換性のある出力を生成する。
+なお、その場合でも、パラメータの並べ替えは行うし、指定が任意の引き数の認識もする
+(詳細については、「\fB互換性\fP」セクションを参照していただきたい)。
+.PP
+従来の \fBgetopt\fP(1)
+の実装では、引き数などのオプションではないパラメータの中に、ホワイトスペース
+(訳注: 空白、タブ、改行など) や (シェル固有の)
+特殊文字などがあると、それに対処することができなかった。
+この問題を解決するために、この実装では、クォートした出力を生成できるようになっているが、
+そうした出力は、シェルによってもう一度解釈される必要がある
+(たいていは、そのために \fBeval\fP コマンドを使用する)。
+この出力形式を使えば、ホワイトスペースや特殊文字を保護することにはなるが、それには
+\fBgetopt\fP を他のバージョンともはや互換性のない形で呼び出さなければならない
+(すなわち、「\fB書式\fP」セクションの第 2 や 第 3 の書式だ)。御使用のシステムに
+\fBgetopt\fP(1) のこの強化版がインストールされているかどうかを知るには、
+専用のテストオプション (\fB\-T\fP) を使用すればよい。
 .SH オプション
-.IP "\-a, \-\-alternative"
-長いオプションを 1 個の
-.RB ` \- '
-で始めることができるようにする。
-.IP "\-h, \-\-help"
-ちょっとした使用ガイドを表示し、正常終了する。
-それ以上は何も出力されない。
-.IP "\-l, \-\-longoptions longopts"
-認識させる長い (複数文字の) オプションを指定する。
-2 つ以上のオプション名をコンマで区切って一度に指定できる。
-このオプションは 2 回以上指定することができる。
-.I longopts 
-は交換可能である。
-.I longopts 
-で指定されている長いオプション名の後に、1 個のコロンを続けることができる。
-これは、そのオプションに引き数が必須であることを示す。
-また、長いオプション名の後に 2 個のコロンを続けることもできる。
-これは、そのオプションが引き数を取る場合もあることを示す。
-.IP "\-n, \-\-name progname"
-エラーが報告された場合に
-.BR getopt (3)
-ルーチンが使うプログラム名。
-このオプションを指定しても、
-.BR getopt (1)
-のエラーは getopt から発生したものとして表示される点に注意すること。
-.IP "\-o, \-\-options shortopts"
-認識させる短い (1 文字の) オプションを指定する。
-このオプションが指定されていない場合、
-.B getopt 
-の 1 個の
-.RB ` \- ' 
-で始まっていない最初のパラメータ (かつ、オプションの引き数でないもの) が
-短いオプションの文字列として使われる。
-.I shortopts 
-に指定されている短いオプション文字の後に、1 個のコロンを続けることができる。
-これは、そのオプションに引き数が必須であることを示す。
-また、長いオプション名の後に 2 個のコロンを続けることもできる。
-これは、そのオプションが引き数を取る場合もあることを示す。
-オプションの解析法と出力の生成法を変更するために、
-shortopts の最初の文字を
-.RB ` + ' 
-または
-.RB ` \- ' 
-にすることができる
-(詳細は
-.B 「スキャンモード」
-セクションを参照すること)。
-.IP "\-q, \-\-quiet"
-getopt(3) によるエラー表示をさせない。
-.IP "\-Q, \-\-quiet\-output"
-通常の出力を生成させない。
-.IR \-q
-を指定しない限り、
-.BR getopt (3)
-によってエラーが表示される。
-.IP "\-s, \-\-shell shell"
-指定したシェルのクォート方法に設定する。
-\-s オプションが指定されていない場合、
+.TP 
+\fB\-a\fP,\fB \-\-alternative\fP
+ロングオプションを 1 個の '\fB\-\fP' で始めることができるようにする。
+.TP 
+\fB\-h\fP,\fB \-\-help\fP
+ヘルプを表示して、終了する。それ以上何も出力しない。
+.TP 
+\fB\-l\fP,\fB \-\-longoptions \fP\fIlongopts\fP
+認識すべきロング (複数の文字からなる) オプション群を指定する。
+2 個以上のオプション名を、コンマで区切って一度に指定することができる。
+このオプションは複数回指定することもでき、その場合も \fIlongopts\fP
+が追加されていく。\fIlongouts\fP
+中の各ロングオプション名の後ろには、コロンを続けることができる。コロンが 1 個のときは、
+引き数が必須だということであり、2 個のときは、
+引き数は任意、すなわち、あってもなくてもよいということである。
+.TP 
+\fB\-n\fP,\fB \-\-name \fP\fIprogname\fP
+\fBgetopt\fP(3) ルーティンが、エラーを通知する際に使用するプログラム名を指定する。
+\fBgetopt\fP(1) 自体に関するエラーは (訳注: たとえば、
+\fBgetopt\fP コマンドのオプションが間違っている場合などは)、やはり getopt
+コマンドがエラーの発生元として報告されることに注意していただきたい。
+.TP 
+\fB\-o\fP,\fB \-\-options \fP\fIshortopts\fP
+認識すべきショート (1 文字からなる) オプション群を指定する。
+このオプションが指定されていない場合は、'\fB\-\fP' で始まらない
+(そして、オプションの引数でもない) \fBgetopt\fP の最初のパラメータが、
+ショートオプションを一つにまとめたショートオプションズ文字列として使用される
+(訳注: 「\fB書式\fP」セクションの第 2 の書式)。\fIshortopts\fP
+中のショートオプション各文字の後ろには、コロンを続けることができる。コロンが
+1 個のときは、引き数が必須だということであり、2
+個のときは、引き数は任意、すなわち、あってもなくてもよいということである。
+また、\fIshortopts\fP の最初の文字を '\fB+\fP' や '\fB\-\fP'
+にすれば、オプションの解析や、出力の生成の仕方に影響を与えることができる
+(詳細については、「\fBスキャニングモード\fP」セクションを参照すること)。
+.TP 
+\fB\-q\fP,\fB \-\-quiet\fP
+getopt(3) の出すエラーメッセージを表示しない。
+.TP 
+\fB\-Q\fP,\fB \-\-quiet\-output\fP
+通常の出力を生成しない。それでも、 \fB\-q\fP も同時に指定しないかぎり、
+\fBgetopt\fP(3) によるエラー報告は行われる。
+.TP 
+\fB\-s\fP,\fB \-\-shell \fP\fIshell\fP
+クォート方式を \fIshell\fP のものにする。\fB\-s\fP オプションが指定されていない場合は、
 .SM BASH
-でのクォート方法が使われる。
-指定可能な引き数は、現在のところ
-.RB ` sh ',
-.RB ` bash ',
-.RB ` csh ',
-.RB ` tcsh '
-である。
-.IP "\-u, \-\-unquoted"
-出力をクォートしない。
-空白と (シェル依存の) 特殊文字は、(他の
-.BR getopt (1)
-の実装と同じように) このモードでは大混乱を引き起こす。
-.IP "\-T \-\-test"
-.BR getopt (1) 
-が拡張バージョンか古いバージョンかをテストする。
-何も出力しないが、エラーステータスを 4 に設定する。
-他の
-.BR getopt (1)
-の実装の場合や、このバージョンで環境変数
-.B GETOPT_COMPATIBLE
-が設定されている場合、
-.RB ` \-\- ' 
-を返し、エラーステータスを 0 に設定する。
-.IP "\-V, \-\-version"
-バージョン情報を出力し、正常終了する。
-それ以上は何も出力されない。
-.SH 解析
-このセクションでは
-.B getopt
-のパラメータの第 2 部分
-.RB ( 「書式」
-セクションの
-.IR parameters )
-のフォーマットについて説明している。
-次のセクション
-.RB ( 出力 ) 
-では生成される出力について説明している。
-これらのパラメータは、一般に、シェル関数が呼ばれたときのパラメータである。
-シェル関数が呼ばれたときの各パラメータが
-.B getopt 
-のパラメータリストにある 1 つのパラメータに
-厳密に対応している点に注意しなければならない
-.RB ( 「例」
-セクションを参照すること)。
-全ての解析が GNU 
-.BR getopt (3) 
-ルーチンで行われる。
-
-パラメータは左から右へ解析される。
-各パラメータは、短いオプション・長いオプション・オプションへの引き数・
-オプションではないパラメータに分類される。
-
-簡単な短いオプションは、
-.RB ` \- ' 
-の後に短いオプション文字が続くものである。
-オプションが引き数を必須としている場合、
-引き数はオプション文字の直後に書くことができる。
-(コマンドライン上で空白で区切られた) 次のパラメータとして書くこともできる。
-オプションが引き数を取ることも取らないこともできる場合、
-引き数が存在するならば、オプション文字の直後に書かなければならない。
-
-(最後のオプションを除く) 全てのオプションが
-必須の引き数もオプションとしての引き数も必要としない限り、
-1 個の
-.RB ` \- '
-の後に複数の短いオプションを指定することができる。
-
-長いオプションは、通常
-.RB ` \-\- ' 
-の後に長いオプション名が続く。
-オプションが引き数を必須としている場合、
-.RB ` = '
-で区切って長いオプション名の直後に書くことができる。
-また、(コマンドライン上で空白で区切って) 次の引き数として書くこともできる。
-オプションが引き数を取ることも取らないこともできる場合、
-引き数が存在するならば、
-.RB ` = '
-で区切って長いオプション名の直後に書かなければならない
-.RB (` = '
-をオプションの後に書いたにも関らず、その後に何も指定しなかった場合、
-引き数が存在しないものとして解釈される。
-これはちょっとしたバグである。
-.B 「バグ」
-セクションを参照すること)。
-長いオプションは、省略形が曖昧でない (他のオプションと区別がつく) 限り、
-短く省略することができる。
-
-.RB ` \- '
-で始まらず、かつ前のオプションが必須としている引き数でもないパラメータは、
-オプションではないパラメータである。
-.RB ` \-\- ' 
-パラメータの後にあるパラメータは、
-オプションではないパラメータとして解釈される。
-環境変数
-.B POSIXLY_CORRECT 
-が設定されている場合、
-または短いオプション文字列が
-.RB ` + '
-で始まっている場合、
-最初のオプションではないパラメータが見つかった時点で、
-残りの全てのパラメータはオプションではないパラメータとして解釈される。
+のクォート方式が使われる。
+指定可能な引き数は、現在のところ '\fBsh\fP', '\fBbash\fP', '\fBcsh\fP', '\fBtcsh\fP' である。
+.TP 
+\fB\-T\fP,\fB \-\-test\fP
+現在使っている \fBgetopt\fP(1)  が、強化バージョンか古いバージョンかをテストする。 このオプションは何も出力しないが、エラーステータスを 4
+にする。 \fBgetopt(1)\fP の他の実装や、このバージョンでも環境変数 \fBGETOPT_COMPATIBLE\fP が設定されている場合は、
+\&'\fB\-\-\fP' を返して、エラーステータスを 0 にする。
+.TP 
+\fB\-u\fP,\fB \-\-unquoted\fP
+出力をクォートしない。このモードでは、ホワイトスペースや (シェルによって様々な)  特殊文字が、 (\fBgetopt\fP(1)
+の他の実装におけると同様に) 望ましからぬ混乱を引き起こしかねないことに、注意していただきたい。
+.TP 
+\fB\-V\fP,\fB \-\-version\fP
+バージョン情報を表示して、終了する。それ以上何も出力しない。
+.SH 構文解析
+このセクションは、\fBgetopt\fP のパラメータの
+2 番目の部分 (「\fB書式\fP」セクションの \fIparameters\fP)
+の書式について詳述している。次のセクション (「\fB出力\fP」)
+では、生成される出力について説明する。一般に \fBgetopt\fP
+は、シェル関数やシェルスクリプトの中で、その引き数を解析するために使うものなので、
+ここで取り上げるパラメータ群が、元はと言えば、
+シェル関数を呼んだときに渡したパラメータだったというのは、
+ごく普通のことである。そこで、シェル関数を呼んだときに渡す各パラメータは、\fBgetopt\fP
+のパラメータリスト中のパラメータと 1 対 1
+で対応するように、気を付けて指定しなければならない
+(「\fB用例\fP」セクションを参照)。すべての解析は、GNU \fBgetopt\fP(3)
+のルーティンによって行われる。
+.IP "[\fB訳注\fP]"
+\fBgetopt\fP の使い方の簡単な例を挙げる。
+たとえば、シェル関数やシェルスクリプト中に次のように書く。
+.sp
+.nf
+    PARAM=$(getopt -o 'a:b::c' -- "$@")
+    eval set -- "$PARAM"
+.fi
+.sp
+このようにして、シェル関数やスクリプトに渡された引き数群を、位置パラメータを利用して、
+どれがオプションで、どれがそのオプション引き数、どれがそれ以外か、
+わかりやすいように、処理しやすいように再構成するわけである。
+詳しくは、「\fB出力\fP」セクションや、
+「\fB用例\fP」で述べているスクリプトの見本を参照していただきたい。
+.sp
+「シェル関数を呼んだときに渡す各パラメータは、\fBgetopt\fP
+のパラメータリスト中のパラメータと 1 対 1
+で対応するように、気を付けて指定しなければならない」というのは、
+シェル関数やシェルスクリプトに渡すパラメータでも、
+それが空白などを含むようならクォートしなければならないのはもちろん、以下で説明するような
+\fBgetopt\fP コマンドのパラメータの書式にも従っていなければならないということである。
+たとえば、引き数が任意のショートオプション \fB\-b\fP
+に引き数を指定する場合は、\fB\-bXXX\fP などと、間に空白を置かずに指定しなければならない。
+.PP
+パラメータ群は左から右へ解析される。各パラメータは、ショートオプション、ロングオプション、
+オプションの引き数、オプションとは無関係なパラメータに分割分類される。
+.PP
+単純なショートオプションは、1 個の '\fB\-\fP' に 1
+個のショートオプション文字が続くものである。
+オプションが引き数を必須にしている場合は、オプション文字の直後に続けてもよく、
+次のパラメータとして (すなわち、コマンドライン上でホワイトスペースを間に置いて)
+書いてもよい。オプションの引き数が任意の場合は、それが存在するなら、
+オプション文字の直後に続けなければならない。
+.PP
+1 個の '\fB\-\fP' の後ろに数個のショートオプションをまとめて指定することもできる。
+ただし、最後のオプション以外のすべてのオプションが、
+必須や任意の引き数を取らないという条件がある
+(例外として、最後のオプションは引き数を取ることができる)。
+.PP
+ロングオプションは、通常 '\fB\-\-\fP' で始まり、ロングオプション名がそれに続く。
+オプションが引き数を必須にしている場合は、ロングオプション名の直後に '\fB=\fP'
+で区切って続けてもよく、次の引き数として
+(すなわち、コマンドライン上でホワイトスペースを間に置いて) 書いてもよい。
+オプションの引き数が任意の場合は、それが存在するなら、ロングオプション名の直後に
+\&'\fB=\fP' で区切って続けなければならない ('\fB=\fP'
+を続けたものの、その後に何も指定しない場合は、引き数が存在しないかのように解釈される。
+これはちょっとしたバグである。「\fBバグ\fP」セクションを参照)。
+ロングオプションは、短縮しても他のオプションと区別が付くかぎり、短縮できる。
+.PP
+\&'\fB\-\fP' で始まっていないパラメータで、直前のオプションの必須の引き数でもないものは、
+いずれもオプションとは無関係なパラメータである。また、'\fB\-\-\fP'
+というパラメータの後にあるパラメータは、常にオプションとは無関係なパラメータと解釈される。
+環境変数 \fBPOSIXLY_CORRECT\fP が設定されている場合や、ショートオプションズ文字列
+(訳注: 「\fB書式\fP」の \fIoptstring\fP) が '\fB+\fP'
+で始まっている場合は、オプションとは無関係な最初のパラメータが見つかった時点で、
+残りのすべてのパラメータは、オプションとは無関係なパラメータと解釈される。
 .SH 出力
-出力は前のセクションで説明した各要素に対して生成される。
-出力は要素が入力で指定された順番で生成される。
-ただし、オプションではないパラメータは例外である。
-出力は
-.I 互換
-.RI ( クォートされない )
-モードで生成することができる。
-また、引き数とオプションではないパラメータに含まれる空白と他の特殊文字を
-保護するモードで出力することもできる
-.RB ( 「クォート」
-セクションを参照すること)。
-出力がシェルスクリプトで処理される場合、
-その出力は別々の要素から構成されているようにみえる。
-この要素は (大部分のシェル言語では shift コマンドを使って)
-1 つ 1 つ処理できる。
-この動作はクォートされないモードでは不完全である。
-なぜなら、要素に空白や特殊文字があった場合、
-要素が期待していない箇所で分割されてしまうからである。
-必須とされる引き数が見つからない、またはオプションが認識されない、
-といった原因でパラメータ解析に問題がある場合、
-標準エラーにエラーが表示される。
-このとき、不正な要素に対しては何も出力されず、
-0 でないエラーステータスが返される。
-
-短いオプションに対して、出力として 1 個の
-.RB ` - ' 
-とオプション文字が生成される。
-オプションが引き数を取る場合、次のパラメータが引き数になる。
-オプションが引き数を取っても取らなくてもよい場合に、
-引き数が指定されていないと、
-クォートモードでは次のパラメータが生成されるが空のパラメータになる。
-この場合、クォートしない (互換) モードでは
-2 番目のパラメータは生成されない。
-他の多くの
-.BR getopt (1) 
-の実装では、取っても取らなくてもよい引き数は
-サポートされていない点に注意すること。
-
-複数の短いオプションが 1 個の
-.RB ` \- ' 
-の後に指定されている場合、
-各オプションは区切られたパラメータとして出力に表示される。
-
-長いオプションに対して、
-.RB ` \-\- ' 
-と完全なオプション名が 1 つのパラメータとして生成される。
-「入力でオプションが略書きされている。
-または、オプションが 1 個の
-.RB ` \- ' 
-を使って指定されている。」ということに関らず、この動作をする。
-引き数は短いオプションとして扱われる。
-
-通常、全てのオプションとその引き数が出力に生成されるまで、
-オプションではないパラメータは出力されない。
-そして、1 個のパラメータとして
-.RB ` \-\- ' 
-が生成される。
-その後にオプションではないパラメータは、
-見つかった順番で別々のパラメータとして生成される。
-短いオプション文字列の最初の文字が
-.RB ` \- '
-である場合にのみ、
-オプションではないパラメータは入力で見つかった位置で出力される
-(この動作は
-.B 「書式」
-セクションの最初の形式が使われた場合にはサポートされない。
-この場合、
-.RB ` \- '
-と
-.RB ` + '
-が前に付く全てのパラメータが無視される)。
+出力は、前のセクションで述べた要素の
+(訳注: すなわち、オプション、オプションの引き数、オプションとは無関係なパラメータ)
+ひとつひとつに対して生成される。 出力される順番は、オプションとは無関係なパラメータ以外は、
+各要素が入力で指定された順番と同じである。出力は、互換 (クォートしない)
+モードで行うこともできるし、ホワイトスペースなどの特殊文字が、
+オプション引き数やオプションとは無関係なパラメータ中にある場合に、
+そうしたものを保護する形で行うこともできる (「\fBクォート\fP」セクションを参照)。
+出力はシェルスクリプト中で処理される際に、それを構成する各要素が、
+それぞれ別の独立したものに見えることになるので、(ほとんどのシェル言語では、shift
+コマンドを使って) ひとつひとつ処理することが可能になる。
+ただし、クォートなしのモードでのこの処理は、完全ではない。
+要素にホワイトスペースや特殊文字が含まれていると、
+思いがけないところで要素が分割されてしまうかもしれないからである。
+.PP
+たとえば、引き数が必須なのに存在しないとか、未知のオプションがあるとかいう理由で、
+パラメータの解析中に問題が起きたときは、エラーメッセージが標準エラーに表示され、
+問題を起こした要素については、何も出力されない。
+そして、ゼロ以外のエラーステータスが返される。
+.PP
+ショートオプションに対しては、1 個の '\fB\-\fP'
+とオプション文字が、ひとつのパラメータとして生成される。
+オプションに引き数がある場合は、次のパラメータがその引き数である。
+オプションの引き数が任意なとき、その引き数が見つからなかった場合は、
+クォーティングモードでは、次のパラメータが生成されるが、空のパラメータになる。
+クォートなしのモード (互換モード) では、2 番目のパラメータは生成されない。
+なお、\fBgetopt\fP(1) の他の実装では、任意の引数をサポートしていないことが多い。
+.PP
+1 個の '\fB\-\fP' の後ろに複数のショートオプションが指定されている場合は、
+各オプションがそれぞれ独立したパラメータとして出力されることになる。
+.PP
+ロングオプションに対しては、'\fB\-\-\fP'
+と省略なしのオプション名がひとつのパラメータとして生成される。
+この動作は、入力中でオプションが短縮されているかどうかや、1 個の '\fB\-\fP'
+とともに指定されているかどうか (訳注: \fB\-a\fP オプションを使った場合)
+とは、関係がない。引き数の処理は、ショートオプションの場合と同じである。
+.PP
+通常、オプションとは無関係なパラメータの出力が生成されるのは、
+すべてのオプションとその引き数が生成されてからである。
+それから、'\fB\-\-\fP' が 1 個のパラメータとして生成され、
+その後で、オプションとは無関係なパラメータが、
+見つかった順序で、それぞれ独立したパラメータとして生成される。
+ただし、ショートオプションズ文字列の最初の文字が '\fB\-\fP'
+のときだけは別で、その場合は、オプションとは無関係なパラメータの出力が、
+入力中のそれが見つかった位置で生成される (この動作は、「\fB書式\fP」セクションの第 1
+の書式が使用されている場合には、サポートされない。
+その場合は、ショートオプションズ文字列の前にある '\fB\-\fP' や
+\&'\fB+\fP' は、すべて無視される)。
 .SH クォート
-互換モードでは、引き数やオプションではないパラメータにある
-空白や「特殊」文字は正しく扱われない。
-この出力はシェルスクリプトに与えられるので、
-スクリプトは、出力をどのようにして個々のパラメータに
-分割すべきなのかを知らない。
-この問題を回避するため、この実装ではクォート機能を提供する。
-これは、各パラメータをクォートして出力を生成する、という手法を取る。
-この出力がもう一度シェル (通常はシェルの
-.B eval
-コマンド) に与えられた場合、
-出力は個々のパラメータに正しく分割される。
-
-環境変数
-.B GETOPT_COMPATIBLE
-が設定された場合・
-.B 「書式」
-セクションの最初の形式が使われた場合・
-.RB ` \-u '
-オプションが指定された場合、クォートは行われない。
-
-クォートの規則はシェルごとに異なる。
-使用しているシェルを選択するために
-.RB ` \-s '
-オプションを使うことができる。
-以下のシェルで正しく機能する:
-.RB ` sh ',
-.RB ` bash ',
-.RB ` csh ' ,
-.RB ` tcsh '.
-実際には、2 つの「方式」に分類される:
-sh 式のクォート規則と csh 式のクォート規則である。
-他のシェルスクリプト言語を使っている場合でも、
-これらの方式のどちらかが使える可能性がある。
-
-.SH スキャンモード
-特殊なスキャンモードであることを示すために、
-短いオプションの最初の文字を
-.RB ` \- '
-または
-.RB ` + '
-にすることができる。
-.B 「書式」
-セクションの最初の呼び出し形式が使われた場合、これは無視される。
-しかし、環境変数
-.B POSIXLY_CORRECT
-が指定されているかどうかは調べられる。
-
-最初の文字が
-.RB ` + '
-の場合、または環境変数
-.B POSIXLY_CORRECT
-が設定されている場合、オプションではない最初のパラメータ
-(つまり、
-.RB ` \- '
-で始まっていないパラメータ) が
-オプション引き数でないと分かった時点で解析はストップする。
-それ以降の全てのパラメータは、オプションではないパラメータとして解釈される。
-
-最初の文字が
-.RB ` \- '
-の場合、オプションではない引き数は見つかった箇所で出力される。
-通常の操作では、
-.RB ` \-\- ' 
-パラメータが生成された後で、最後にまとめて出力される。
-この場合でも
-.RB ` \-\- '
-パラメータは生成されるが、
-通常このモードでは最後のパラメータになる点に注意すること。
+互換モードでは、オプションの引き数やオプションとは無関係なパラメータ中に、
+ホワイトスペースや特殊文字があると、それを適切に処理できない。
+そのため、互換モードの出力を渡されたシェルスクリプトは、
+その出力をどのように個々のパラメータに分割することを期待されているのか、わからないことになる。
+この問題を回避するために、\fBgetopt\fP のこの実装では、クォートによる保護を提供している。
+要するに、出力を生成するとき、パラメータをひとつひとつ引用符で囲んでやるのである。この出力を
+(たいていは、シェルの \fBeval\fP コマンドを使って)
+もう一度シェルに渡してやれば、別々のパラメータに適切に分割されることになる。
+.PP
+次の場合には、引用符による保護が行われない。環境変数 \fBGETOPT_COMPATIBLE\fP
+が設定されている場合、「\fB書式\fP」セクションの第 1
+の書式が使われている場合、'\fB\-u\fP' オプションが指定されている場合。
+.PP
+クォート方式はシェルごとに異なる。自分が使用しているシェルの方式を選ぶには、'\fB\-s\fP'
+オプションを使えばよい。現在サポートしているシェルは、'\fBsh\fP', '\fBbash\fP',
+\&'\fBcsh\fP', '\fBtcsh\fP' である。実のところ、sh 風のクォート方式と
+csh 風のクォート方式という、2 つの系統しか区別していない。
+別のシェルスクリプト言語を使用している場合でも、この
+2 つの系統のどちらかが多分使えるだろう。
+.SH スキャニングモード
+ショートオプションズ文字列 (訳注: 「書式」の \fIoptstring\fP)
+の先頭には、1 個の '\fB\-\fP' または '\fB+\fP'
+を付けて、特別なスキャニングモードを指示することができる。
+「\fB書式\fP」の第 1 の呼び出し形式が使用されている場合には、
+こうしたプラスやマイナス記号は無視されるが、そのときでも、環境変数
+\fBPOSIXLY_CORRECT\fP が設定されているかどうかは、やはり調べられる (訳注: 実際には、
+第 1 の書式で \fIoptstring\fP の先頭に '\fB\-\fP'
+を付けると、2, 3 番目の書式と混同されて、多分エラーになる)。
+.PP
+先頭文字が '\fB+\fP' の場合や、環境変数 \fBPOSIXLY_CORRECT\fP
+が設定されている場合は、オプションではないパラメータで (すなわち、'\fB\-'\fP
+で始まっていないパラメータで)、かつオプションの引き数でもないものが最初に見つかった時点で、
+解析はストップする。残りのパラメータはすべて、オプションとは無関係なパラメータと見なされる。
+.PP
+先頭文字が '\fB\-\fP' の場合、オプションとは無関係なパラメータは、
+それが見つかった位置に出力される。それに対して、通常の動作では、
+そうしたパラメータは、1 個の '\fB\-\-\fP' というパラメータが生成された後で、
+出力の末尾に全部まとめて置かれるのである。 なお、このモードでも、'\fB\-\-\fP'
+というパラメータはやはり生成されるが、必ず最後のパラメータになる。
 .SH 互換性
-このバージョンの
-.BR getopt (1)
-は、出来るだけ他のバージョンと互換性があるように書かれた。
-通常は他のバージョンを修正することなく、
-このバージョンに置き換えることができる。
-更に、いくつかの利点がある。
-
-getopt の最初のパラメータの最初の文字が
-.RB ` \- '
-でない場合、getopt は互換モードになる。
-最初のパラメータは短いオプションの文字列として解釈され、
-他の全ての引き数が解析される。
-この場合でも、環境変数
-.B POSIXLY_CORRECT 
-が設定されていない限り、パラメータの並べ替えを行う
-(つまり、オプションではない全てのパラメータが最後に出力される)。
-
-環境変数
-.B GETOPT_COMPATIBLE 
-は
-.B getopt
-を強制的に互換モードにする。
-この環境変数と
-.B POSIXLY_CORRECT
-の両方を設定すると、「難しい」プログラムのために 100% の互換性を提供する。
+このバージョンの \fBgetopt\fP(1)
+は、できるだけ他のバージョンと互換性があるように書かれている。
+たいていの場合、他のバージョンの \fBgetopt\fP をこのバージョンで置き換えるだけでよく、
+既存のシェルスクリプトなどに手を入れる必要はない。さらに、いくつかの利点もある。
+.PP
+getopt の最初のパラメータの最初の文字が '\fB\-\fP' でない場合、getopt は互換モードになる。
+最初のパラメータは、ショートオプションをひとつにまとめた文字列と見なされ、 他のすべての引き数は、解析の対象になる。 この場合でも、環境変数
+\fBPOSIXLY_CORRECT\fP が設定されていないかぎり、パラメータの並べ替えは行う。
+(すなわち、オプションとは無関係なすべてのパラメータは、最後に出力される)。
+.PP
+環境変数 \fBGETOPT_COMPATIBLE\fP は \fBgetopt\fP
+を強制的に互換モードにする。この環境変数と \fBPOSIXLY_CORRECT\fP
+の両方を設定すると、「気難しい」プログラムのために 100% の互換性が得られる。
 しかし、通常はどちらも設定する必要がない。
-
-互換モードでは、短いオプション文字列の最初に付く
-.RB ` \- '
-と
-.RB ` + '
-は無視される。
-.SH リターンコード
-解析に成功した場合、
-.B getopt
-はエラーコード
-.B 0 
-を返す。
-.BR getopt (3)
-がエラーを返した場合は
-.B 1
-を返す。
-パラメータが理解できなかった場合は
-.B 2 
-を返す。
-メモリが足りない (out\-of\-memory) といった内部エラーの場合は
-.B 3
-を返す。
-.BR \-T
-オプションを付けて呼び出された場合は
-.B 4
-を返す。
-.SH 例
-(ba)sh と (t)csh での使用例のスクリプトは、
-.BR getopt (1)
-ディストリビューションで提供されている。
-これらはオプションとして
-.B /usr/local/lib/getopt 
-または
-.B /usr/lib/getopt
-にインストールされている。
+.PP
+互換モードでは、ショートオプションズ文字列の先頭に付く '\fB\-\fP' や '\fB+\fP' は無視される。
+.SH 返り値
+\fBgetopt\fP は、解析に成功した場合は、エラーコード \fB0\fP を返す。 \fBgetopt\fP(3)
+がエラーを返した場合は \fB1\fP を返す。
+自分自身に対して与えられたパラメータが理解できなかった場合は \fB2\fP
+を返す。メモリが足りない (out\-of\-memory) といった内部エラーが起きた場合は \fB3\fP
+を返す。\fB\-T\fP オプションを付けて呼び出された場合は \fB4\fP を返す。
+.SH 用例
+\fBgetopt\fP(1)  の配布では、(ba)sh と (t)csh
+用のスクリプトの見本を提供している。インストールされているなら、\fI/usr/share/getopt/\fP
+か \fI/usr/share/doc/\fP 以下の util\-linux のサブディレクトリにあるだろう。
 .SH 環境変数
 .IP POSIXLY_CORRECT
-この環境変数は
-.BR getopt (3)
-ルーチンで調べられる。
-これが設定されている場合、パラメータがオプションまたは
-オプション引き数でないと分かった時点で解析は停止する。
-それ以降の全てのパラメータは、
-.RB ` \- '
-で始まっているかどうかに関係なく、
-オプションではないパラメータとして解釈される。
+この環境変数は \fBgetopt\fP(3) ルーティンによって調べられる。これが設定されている場合、
+オプションでもオプションの引き数でもないパラメータが見つかった時点で、解析は停止する。
+それ以降のすべてのパラメータは、'\fB\-\fP'
+で始まっているかどうかに関係なく、オプションとは無関係なパラメータとして解釈される。
 .IP GETOPT_COMPATIBLE
-.B getopt
-に対して強制的に
-.B 「書式」
-セクションの最初の呼び出し形式を使わせる。
+\fBgetopt\fP に対して強制的に「\fB書式\fP」セクションの第 1
+の呼び出し形式を使わせる。
 .SH バグ
-.BR getopt (3)
-は、引き数を取っても取らなくてもよい長いオプションを解析できる
-(ただし、短いオプションの場合は解析できない)。
-この
-.BR getopt (1)
-は、オプション引き数が指定されていない場合、それが存在しないものとして扱う。
-
-短いオプション変数を全く使いたくない場合、
-書式は全く直感的でないものになる
-(明示的に空の文字列に設定する必要がある)。
-
-.SH 著者
-Frodo Looijaard <frodol@dds.nl>
+\fBgetopt\fP(3)
+関数は、引き数が任意のロングオプションが、空の任意引き数を渡された場合でも、解析できる
+(だが、ショートオプションについては、それができない)。この \fBgetopt\fP(1)
+コマンドは、空の任意引き数を、引き数が存在しないかのように処理している。
+.IP "[\fB訳注\fP]"
+詳しく言うと、\fBgetopt\fP(3) (\fBgetopt_long\fP(3)) 関数は、
+引き数が任意のロングオプションに引数がない場合と、空の引き数を渡された場合とを区別している。
+しかし、ショートオプションについては、その区別ができない。
+.sp
+この \fBgetopt\fP(1) コマンドの動作について言うと、第 2、第 3
+の書式では、ロングオプション、ショートオプションを問わず、
+引き数が任意のオプションに引き数が存在しない場合も、引き数が空文字列である場合も、
+オプションの引き数として空文字列を出力する。
+また、第 1 の書式では、引き数が任意のオプションに引き数が存在しない場合も、
+引き数が空文字列の場合も、そのオプションの引き数はまったく出力されない。
+「\fB出力\fP」セクションのショートオプションの説明を参照していただきたい。
+.sp
+要するに、この \fBgetopt\fP コマンドでは、引き数が任意のオプションについて、
+引き数が存在しない場合と引き数が空文字列である場合の区別がまったくないのである。
+だから、バグと言っても、不具合ということではなく、このコマンドと
+\fBgetopt\fP(3) 関数の仕様が微妙に違うことを言っているのだろうと思う。
+.PP
+ショートオプションを全く使いたくない場合の \fBgetopt\fP
+コマンドの構文は、あまり直感的ではない
+(ショートオプションズ文字列を明示的に空文字列にしなければならないのだ)。
+.IP "[\fB訳注\fP]"
+すなわち、\fBgetopt \-o '' \-\-longoptions ...\fP
+のように使用しなければならない。
+.SH 作者
+.MT frodo@frodo.looijaard.name
+Frodo Looijaard
+.ME
 .SH 関連項目
-.BR getopt (3),
-.BR bash (1),
-.BR tcsh (1).
+\fBbash\fP(1), \fBtcsh\fP(1), \fBgetopt\fP(3)
+.SH 入手方法
+この getopt コマンドは、util\-linux パッケージの一部であり、
+.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util\-linux/
+Linux Kernel Archive
+.UE
+から入手できる。
index 3f219ad..7e95707 100644 (file)
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    from: @(#)hexdump.1     8.2 (Berkeley) 4/18/94
+.\"    @(#)hexdump.1   8.2 (Berkeley) 4/18/94
 .\"
-.\" Japanese Version Copyright (c) 2001-2002 Yuichi SATO
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
+.\" The original version of this translation was contributed 
+.\" to Linux JM project from NetBSD jman proj.
+.\"
+.\" The copyright for the modified parts of the translation blongs to us
+.\" with Linux JM project.
+.\"
+.\" Japanese Version Copyright for the modified parts (c) 2001-2020 Yuichi SATO
+.\"   and 2020 Yoichi Chonan,
 .\"         all rights reserved.
 .\" Translated Tue 11 Jan 1994
 .\"         by NetBSD jman proj. <jman@spa.is.uec.ac.jp>
 .\"         by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
 .\" Updated Sun Mar 24 11:54:42 JST 2002
 .\"         by Yuichi SATO <ysato@h4.dion.ne.jp>
+.\" Updated & Modified (util-linux 2.34) Wed Apr 15 16:47:56 JST 2020
+.\"         by Yuichi SATO <ysato444@ybb.ne.jp>
+.\"         and Yoichi Chonan <cyoichi@maple.ocn.ne.jp>
 .\"
-.Dd April 18, 1994
-.Dt HEXDUMP 1
-.Os
-.Sh 名前
-.Nm hexdump
-.Nd ASCII, 10 進, 16 進, 8 進でダンプする
-.Sh 書式
-.Nm
-.Op Fl bcCdovx
-.Bk -words
-.Op Fl e Ar format_string
-.Ek
-.Bk -words
-.Op Fl f Ar format_file
-.Ek
-.Bk -words
-.Op Fl n Ar length
-.Ek
-.Bk -words
-.Op Fl s Ar skip
-.Ek
-.Ar file ...
-.Sh 説明
-hexdump ユーティリティは、指定したファイルを
-ユーザーが指定したフォーマットで表示するフィルタである。
-ファイルが指定されていない場合は、標準入力を読み込んでフォーマットする。
-.Pp
-オプションとしては以下のものがある:
-.Bl -tag -width Fl
-.It Fl b
-.Em 1 バイト単位の 8 進数表示。
-入力オフセットを 16 進数で表示し、
-その後に、入力データ 1 バイトずつを
-0 で字詰めした 3 桁の 8 進数で表現し、
-それを 1 行当たり 16 個、空白で区切って表示する。
-.It Fl c
-.Em 1 バイト単位のキャラクタ表示。
-入力オフセットを 16 進数で表示し、
-その後に、入力データのキャラクタを
-空白で字詰めした 3 桁 (の ASCII 文字) で表現し、
-それを 1 行当たり 16 個、空白で区切って表示する。
-.It Fl C
-.Em 標準的な 16進数 + ASCII での表示。
-入力オフセットを 16 進数で表示し、
-その後に、入力データのキャラクタを 2 桁の 16 進数で表現し、
-それを 1 行当たり 16 個、空白で区切って表示する。
-その後に、``|'' で囲まれた中に同じ 16 バイトを
-%_p フォーマットで表示する。
-.It Fl d
-.Em 2 バイト単位の 10 進数表示。
-入力オフセットを 16 進数で表示し、
-その後に、入力データ 2 バイト単位を
-0 で字詰めした 5 桁の符号なし 10 進数で表現し、
-それを 1 行当たり 8 個、空白で区切って表示する。
-.It Fl e Ar format_string 
-データを表示するために使われるフォーマット文字列を指定する。
-.It Fl f Ar format_file 
-1 個以上のフォーマット文字列 (改行で区切る) の書かれたファイルを指定する。
-空行、または空白を除いた最初の文字がハッシュマーク
-.Pf ( Cm \&# )
-である行は無視される。
-.It Fl n Ar length 
-入力の
-.Ar length
-バイト分だけを処理する。
-.It Fl o
-.Em 2 バイト単位の 8 進数表示。
-入力オフセットを 16 進数で表示し、
-その後に、入力 2 バイト単位を
-0 で字詰めした 6 桁の 8 進数で表現し、
-それを 1 行当たり 8 個、空白で区切って表示する。
-.It Fl s Ar offset 
-入力の先頭から
-.Ar offset
-バイトを読み飛ばす。
-デフォルトでは
-.Ar offset
-は 10 進数として解釈される。
-先頭に
-.Cm 0x
-または
-.Cm 0X
-を付けた場合、
-.Ar offset
-は 16 進数として解釈される。
-先頭に
-.Cm 0
-を付けた場合、
-.Ar offset
-は 8 進数として解釈される。
-.Ar offset
-の後ろに
-.Cm b ,
-.Cm k ,
-.Cm m
-を付けた場合、それぞれ
-.Li 512 ,
-.Li 1024 ,
-.Li 1048576
-倍であると解釈されるようになる。
-.It Fl v
-.Fl v
-オプションを指定すると、hexdump に対して全ての入力データを表示させる。
-.Fl v
-オプションを指定しない場合、
-直前の出力行と同じ内容の行 (ただし、入力オフセットは除く) は、
-何行であっても、
-1 個のアスタリスクが書かれた行で置き換えられる。
-.It Fl x
-.Em 2 バイト単位の 16 進数表示。
-入力オフセットが 16 進数で表示し、
-その後に、入力 2 バイト単位を
-0 で字詰めした 4 桁の 16 進数で表現し、
-それを 1 行当たり 8 個、空白で区切って表示する。
-.El
-.Pp
-各入力ファイルに対して、
-.Nm
-は、入力ファイルが指定された順番で、
-.Fl e
-や
-.Fl f
-オプションで指定されたフォーマット文字列に基づいて変換しながら
-続けて標準出力に書き出していく。
-.Ss フォーマット
-フォーマット文字列は、空白で区切られた任意の個数の
-フォーマット単位を含んでいる。
-フォーマット単位は最大 3 個の要素、つまり、
-繰り返し回数・バイト数・フォーマットを含んでいる。
-.Pp
-繰り返し回数は、オプションとして指定される正の整数である。
-デフォルトは 1 である。
-各フォーマットは繰り返し回数だけ適用される。
-.Pp
-バイト数は、オプションとして指定される正の整数である。
-これが指定された場合、
-1 つのフォーマットで処理されるバイト数を示す。
-.Pp
-繰り返し回数とバイト数 (の両方、もしくはどちらか一方) が指定された場合、
-どちらの数字かを区別するために、
-繰り返し回数の後とバイト数の前にスラッシュを 1 個置かなければならない。
-スラッシュの前後の空白は無視される。
-.Pp
-フォーマットは必須で、ダブルクォートマーク (" ") で囲まなければならない。
+.TH HEXDUMP 1 "April 2013" util\-linux "User Commands"
+.SH 名前
+hexdump \- ファイルの内容を 16 進数、10 進数、8 進数、ASCII 文字で表示する
+.SH 書式
+\fBhexdump\fP [options]\fI file\fP...
+.SH 読者へのご注意
+これは、util-linux 版の \fBhexdump\fP コマンドのマニュアルである。\fBhexdump\fP
+コマンドの実装には、いくつかの系統がある。御使用のディストリビューションが
+util-linux 版以外の \fBhexdump\fP コマンドを採用している場合は、
+動作やオプションがここで説明しているものとかなり違っているかもしれない。
+そういうときは、英語版しかないかもしれないが、お手元の \fBhexdump\fP
+コマンドに付属するマニュアルに当たってみていただきたい。
+.SH 説明
+\fBhexdump\fP ユーティリティは、指定されたファイルをユーザーが指定したフォーマットで表示するフィルタである。
+ファイルが指定されていない場合は、標準入力を処理の対象にする。
+.SH オプション
+以下で使用する引き数 \fIlength\fP や \fIoffset\fP
+の後ろには、KiB (=1024), MiB (=1024*1024)
+のような乗数を表す接尾辞を付けることができる。GiB, TiB, PiB, EiB, ZiB, YiB
+も同様に使える ("iB" を続けるのは任意であり、たとえば、"K" は "KiB"
+と同じ意味だ)。また、KB (=1000), MB (=1000*1000)
+のような接尾辞を付けてもよい。GB, TB, PB, EB, ZB, YB も同様に使える。
+.TP 
+\fB\-b\fP, \fB\-\-one\-byte\-octal\fP
+\fI1 バイト単位の 8 進数表示\fP。
+入力オフセットを 16 進数で表示し、その後に、入力データを 1 バイトずつ
+0 で字詰めした 3 桁の 8 進数で表現し、それを 1 行当たり 16 個、空白で区切って表示する。
+.TP 
+\fB\-c\fP, \fB\-\-one\-byte\-char\fP
+\fI1 バイト単位の ASCII 文字表示\fP。
+入力オフセットを 16 進数で表示し、その後に、入力データを
+1 キャラクタずつ、空白で字詰めした 3 桁の ASCII 文字で表現し、それを
+1 行当たり 16 個、空白で区切って表示する
+(訳注: 表示不能文字は、エスケープ表記が可能なものはエスケープ表記で、
+できないものは、3 桁の 8 進数で表示される)。
+.TP 
+\fB\-C\fP, \fB\-\-canonical\fP
+\fI標準的な 16 進数 + ASCII での表示\fP。
+入力オフセットを 16 進数で表示し、その後に、入力データを 1 バイトずつ
+2 桁の 16 進数で表現し、それを 1 行当たり 16 個、空白で区切って表示する。
+その後に、2 つの '\fB|\fP' で囲まれた中に同じ 16 バイトを
+\fB%_p\fP フォーマットで表示する。
+.TP 
+\fB\-d\fP, \fB\-\-two\-bytes\-decimal\fP
+\fI2 バイト単位の 10 進数表示\fP。
+入力オフセットを 16 進数で表示し、その後に、入力データを 2 バイトずつ 0 で字詰めした
+5 桁の符号なし 10 進数で表現し、それを 1 行当たり 8 個、空白で区切って表示する。
+.TP 
+\fB\-e\fP, \fB\-\-format\fP \fIformat_string\fP
+データを表示するために使われるフォーマット文字列を指定する
+(訳注: フォーマット文字列は、シングルクォート (' ') で囲む必要がある)。
+.TP 
+\fB\-f\fP, \fB\-\-format\-file\fP \fIfile\fP
+1 個以上のフォーマット文字列を、改行で区切って書き込んだファイルを指定する。
+空行や、空白を除いた最初の文字がハッシュマーク (\&#) である行は無視される
+(訳注: \fB\-e\fP オプションと違って、こちらでは、
+フォーマット文字列、すなわち各行をシングルクォートで囲んではいけない)。
+.TP 
+\fB\-L\fP, \fB\-\-color\fP[=\fIwhen\fP]
+フォーマット中のカラー指定単位 (color unit) を出力に使用する。
+指定が任意の引き数 \fIwhen\fP は、\fBauto\fP, \fBnever\fP, \fBalways\fP
+のいずれかである。引き数 \fIwhen\fP を省略すると、デフォルトの \fBauto\fP になる。
+カラー表示は、無効にすることもできる。
+プログラムに埋め込まれた現在のデフォルトが有効か無効かは、\fB\-\-help\fP の出力を見ればわかる。
+後述の「\fBカラー指定\fP」サブセクションと「\fBカラー表示\fP」セクションも参照していただきたい
+(訳注: 短いオプション \fB\-L\fP に引き数を付けるときは、間に空白を入れずに
+\fB\-Lalways\fP のように直接続けなければならない)。
+.TP 
+\fB\-n\fP, \fB\-\-length\fP \fIlength\fP
+入力の \fIlength\fP バイト分だけを処理する。
+.TP 
+\fB\-o\fP, \fB\-\-two\-bytes\-octal\fP
+\fI2 バイト単位の 8 進数表示\fP。
+入力オフセットを 16 進数で表示し、その後に、入力データを 2 バイトずつ 0 で字詰めした
+6 桁の 8 進数で表現し、それを 1 行当たり 8 個、空白で区切って表示する。
+.TP 
+\fB\-s\fP, \fB\-\-skip\fP \fIoffset\fP
+入力の先頭から \fIoffset\fP バイトを読み飛ばす。
+.TP 
+\fB\-v\fP, \fB\-\-no\-squeezing\fP
+\fB\-v\fP オプションを指定すると、\fBhexdump\fP は、入力データをすべて表示するようになる。
+\fB\-v\fP オプションを指定しない場合は、直前の出力行と (入力オフセット以外が)
+同じ内容の行は、何行であっても、ただ 1 個のアスタリスクからなる
+1 行に置き換えられる。
+.TP 
+\fB\-x\fP, \fB\-\-two\-bytes\-hex\fP
+\fI2 バイト単位の 16 進数表示\fP。
+入力オフセットを 16 進数で表示し、その後に、入力データを 2 バイトずつ 0 で字詰めした
+4 桁の 16 進数で表現し、それを 1 行当たり 8 個、空白で区切って表示する。
+.TP 
+\fB\-V\fP,\fB \-\-version\fP
+バージョン情報を表示して、終了する。
+.TP 
+\fB\-h\fP,\fB \-\-help\fP
+ヘルプを表示して、終了する。
+.PP
+各入力ファイルに対して、\fBhexdump\fP は、入力を \fB\-e\fP や \fB\-f\fP
+オプションで指定されたフォーマット文字列に従い、
+フォーマット文字列が指定された順序でデータを変換しながら、標準出力に順次書き出していく。
+.SH フォーマット
+フォーマット文字列は、空白 (またはタブ)
+で区切られた任意の数のフォーマット単位から構成される。1 つのフォーマット単位は、最大で
+3 個の要素、すなわち、繰り返し回数、バイト数、フォーマットを含んでいる。
+.PP
+.IP "[\fB訳注\fP]"
+各フォーマット文字列は 1 行からなる。フォーマット文字列を複数個指定すると、
+その各々が、同じ 1 つの処理単位 
+(後述の\fIブロック\fRである。「\fB処理されるバイト数\fR」セクションを参照)
+に対して、重ねて適用されることになる
+(すなわち、どのフォーマット文字列もブロックの先頭から適用される)。
+複数のフォーマット文字列を指定するには、\fB\-e\fR
+オプションでは、\fB\-e\fR を複数回使えばよい。\fB\-f\fR
+オプションでは、改行で区切って複数行にする。
+.sp
+フォーマット単位は、「繰り返し回数 / バイト数 "フォーマット"」という書式になる。"フォーマット"
+以外は省略できる。
+.PP
+繰り返し回数は、指定が任意の (訳注: すなわち、省略可能な)
+正の整数であり、デフォルトは 1 である。各フォーマットは繰り返し回数だけ適用される。
+.PP
+バイト数も、指定が任意の正の整数である。これが指定されている場合は、そのフォーマットを
+1 回適用するごとに処理するバイト数を示している。
+.PP
+繰り返し回数やバイト数を指定する場合、どちらの数字か区別できるように、
+繰り返し回数の後や、バイト数の前にスラッシュを 1 個置かなければならない。
+スラッシュの前後に空白があっても、無視される。
+.PP
+フォーマットは必須で、ダブルクォート (" ") で囲まなければならない。
 このフォーマットは、fprintf 形式のフォーマット文字列
-.Ns ( Xr fprintf 3
-を参照) として解釈されるが、
-以下のような例外がある:
-.Bl -bullet -offset indent
-.It
+(\fBfprintf\fP(3) を参照) として解釈されるが、以下のような例外がある。
+.TP 
+1.
 フィールドの幅や精度としてアスタリスク (*) を使えない。
-.It
-個々の変換文字 ``s'' について、バイト数やフィールド精度が必須である
-(精度が指定されていない場合に全ての文字列を表示する
-.Xr fprintf 3
+.TP 
+2.
+変換文字 \fBs\fP のそれぞれについて、バイト数かフィールド精度が必要である。
+(その点が、精度が指定されていない場合に全ての文字列を表示する \fBfprintf\fP(3)
 のデフォルトとは異なる)。
-.It
-変換文字 ``h'', ``l'', ``n'', ``p'', ``q'' がサポートされていない。
-.It
-C 言語の標準規格で記述されている
+.TP 
+3.
+変換文字 \fBh\fP,\fB\ l\fP,\fB\ n\fP,\fB\ p\fP,\fB\ q\fP がサポートされていない。
+.TP 
+4.
+C 言語の規格に書かれている
 1 文字のエスケープシーケンスがサポートされている:
-.Bd -ragged -offset indent -compact
-.Bl -column <alert_character>
-.It NUL        \e0
-.It <アラート文字>       \ea
-.It <バックスペース>    \eb
-.It <フォームフィード> \ef
-.It <改行>   \en
-.It <復帰>   \er
-.It <タブ>   \et
-.It <垂直タブ>     \ev
-.El
-.Ed
-.El
-.Pp
-hexdump は、他にも以下の変換文字列をサポートする:
-.Bl -tag -width Fl
-.It Cm \&_a Ns Op Cm dox 
-次に表示されるバイトのオフセット
-(複数の入力ファイルで通算した値) を表示する。
-文字
-.Cm d ,
-.Cm o ,
-.Cm x
-を後ろに付加すると、表示の際の基数がそれぞれ 10, 8, 16 進数に指定される。
-.It Cm \&_A Ns Op Cm dox 
-変換文字列
-.Cm \&_a
-とほぼ同じ。
-ただし、この変換は全ての入力データが処理された後で 1 回だけ実行される。
-.It Cm \&_c
-デフォルト文字セットの文字で出力する。
-表示不能な文字は、0 で字詰めした 3 桁の 8 進数で表示される。
-ただし、標準エスケープ表記で表現される文字 (上記を参照) は、
-その 2 文字の文字列で表示される。
-.It Cm _p
-デフォルト文字セットの文字で出力する。
-表示不能な文字は、1 個の
-.Dq Cm \&.
-として表示される。
-.It Cm _u
+.PP
+.RS 13
+.PD 0
+.TP  21
+NULL
+\e0
+.TP 
+<アラート文字>
+\ea
+.TP 
+バックスペース
+\eb
+.TP 
+フォームフィード
+\ef
+.TP 
+改行
+\en
+.TP 
+復帰
+\er
+.TP 
+タブ
+\et
+.TP 
+垂直タブ
+\ev
+.PD
+.RE
+.PP
+.SS 変換文字列
+\fBhexdump\fP ユーティリティは、さらに以下の変換文字列もサポートしている:
+.TP 
+\fB\&_a[dox]\fP
+次に表示されるバイトの入力オフセット (複数の入力ファイルで通算した値) を表示する。
+文字 \fBd\fP, \fBo\fP, \fBx\fP を後ろに付けると、オフセットの表示がそれぞれ
+10, 8, 16 進数になる。
+.TP 
+\fB\&_A[dox]\fP
+変換文字列 \fB\&_a\fP とほぼ同じ。ただし、この変換は全ての入力データが処理された後で
+1 回だけ実行される。
+.TP 
+\fB\&_c\fP
+デフォルト文字セットの文字で出力する。表示不能な文字は、0 で字詰めした
+3 桁の 8 進数で表示される。ただし、標準エスケープ表記で表現できる文字
+(上記を参照) は、その 2 文字の文字列で表示される。
+.TP 
+\fB\&_p\fP
+デフォルト文字セットの文字で出力する。表示不能な文字は、1 個の '\fB\&.\fP' として表示される。
+.TP 
+\fB\&_u\fP
 US ASCII 文字で出力する。
 ただし、制御文字は以下のような小文字の名前を使って表示される。
-16 進数で 0xff より大きい文字は、
-16 進数の文字列として表示される。
-.Bl -column \&000_nu \&001_so \&002_st \&003_et \&004_eo
-.It \&000\ nul\t001\ soh\t002\ stx\t003\ etx\t004\ eot\t005\ enq
-.It \&006\ ack\t007\ bel\t008\ bs\t009\ ht\t00A\ lf\t00B\ vt
-.It \&00C\ ff\t00D\ cr\t00E\ so\t00F\ si\t010\ dle\t011\ dc1
-.It \&012\ dc2\t013\ dc3\t014\ dc4\t015\ nak\t016\ syn\t017\ etb
-.It \&018\ can\t019\ em\t01A\ sub\t01B\ esc\t01C\ fs\t01D\ gs
-.It \&01E\ rs\t01F\ us\t0FF\ del
-.El
-.El
-.Pp
-変換文字列で使われるデフォルトのバイト数とサポートされるバイト数は、
-以下の通りである。
-.Bl -tag -width  "Xc,_Xc,_Xc,_Xc,_Xc,_Xc" -offset indent
-.It Li \&%_c , \&%_p , \&%_u , \&%c
+16 進数で 0x7f より大きい文字は、16 進数の文字列として表示される。
+.RS 10
+.TS
+tab(|);
+l l l l l l.
+000 nul|001 soh|002 stx|003 etx|004 eot|005 enq
+006 ack|007 bel|008 bs|009 ht|00A lf|00B vt
+00C ff|00D cr|00E so|00F si|010 dle|011 dc1
+012 dc2|013 dc3|014 dc4|015 nak|016 syn|017 etb
+018 can|019 em|01A sub|01B esc|01C fs|01D gs
+01E rs|01F us|07F del
+.TE
+.SS カラー指定
+フォーマット指定子 (訳注: 変換文字や変換文字列)
+の末尾にカラー指定を追加すると、hexdump は、対応する文字列
+(訳注: たいていは 16 進数などの数値) を指定された色でハイライトする。
+条件が存在する場合は、ハイライトする前に評価される
+(訳注: カラー指定の実例については、「\fB用例\fP」セクションの
+3 番目の例をご覧になっていただきたい)。
+.PP
+.nf
+\fB\&_L[color_unit_1,color_unit_2,...,color_unit_n]\fP
+.fi
+.PP
+カラー指定単位 (color unit) の完全な書式は以下のとおりである:
+.PP
+.nf
+\fB[!]COLOR[:VALUE][@OFFSET_START[\-END]]\fP
+.fi
+.TP 
+\fB!\fP
+条件を否定する。
+注意していただきたいが、あるカラー指定単位について否定することに意味があるのは、
+値/文字列と、オフセットの両方を指定したときだけである。
+その場合は、値/文字列がそのオフセットにあるものとマッチしなかったときにのみ、
+対応する出力文字列がハイライトされることになる。
+.RS
+.IP "[\fB訳注\fP]"
+上で言っているのは、否定は、あるオフセット、または比較的狭いオフセットの範囲に、
+ある値が存在しないことを調べるためのものだということだろう。
+広範囲についてそれをやるのは、色彩を反転させるだけで、否定しないときと事実上同じことになる。
+.RE
+.TP 
+\fBCOLOR\fP
+シェルで使われる 8 種の基本色の 1 つ。
+.TP 
+\fBVALUE\fP
+マッチすべき値。16 進数、8 進数、または文字列で指定する。
+hexdump はカラー指定単位の中では、通常の
+C 言語のエスケープシーケンスを解釈しないことに注意していただきたい。
+.TP 
+\fBOFFSET\fP
+マッチするか否かをチェックするオフセット、またはオフセットの範囲
+(訳注: このオフセットは 10 進数で指定するようだ)。OFFSET_START
+だけ指定すると、END オフセットが同じ値になることに注意していただきたい。
+.SS 処理されるバイト数
+変換文字で使われるデフォルトのバイト数とサポートされるバイト数は、以下の通りである。
+.TP 
+\fB\&%_c\fP,\fB\ \&%_p\fP,\fB\ \&%_u\fP,\fB\ \&%c\fP
 1 バイトのみ。
-.It Xo
-.Li \&%d , \&%i , \&%o ,
-.Li \&%u , \&%X , \&%x 
-.Xc
+.TP 
+\fB\&%d\fP,\fB\ \&%i\fP,\fB\ \&%o\fP,\fB\ \&%u\fP,\fB\ \&%X\fP,\fB\ \&%x\fP
 4 バイトがデフォルト。1, 2, 4 バイトがサポートされている。
-.It Xo
-.Li \&%E , \&%e , \&%f ,
-.Li \&%G , \&%g 
-.Xc
+.TP 
+\fB\&%E\fP,\fB\ \&%e\fP,\fB\ \&%f\fP,\fB\ \&%G\fP,\fB\ \&%g\fP
 8 バイトがデフォルト。4 バイトがサポートされている。
-.El
-.Pp
-各フォーマット文字列によって処理されるデータの量は、
-各フォーマット単位で必要とされるデータの合計である。
-この合計は (繰り返し回数)×(バイト数) である。
-また、バイト数が指定されていない場合は、
-(繰り返し回数)×(フォーマットが必要としているバイト数) である。
-.Pp
-入力は「ブロック」ごとに操作される。
-ブロックは、フォーマット文字列で指定される
-データの塊のうちで最大のもの、と定義される。
-入力ブロックのデータより少ないバイト数しか処理していないフォーマット文字列で、
-その中の最後のフォーマット単位で数バイトを処理し、
-かつ繰り返し回数が指定されていない場合、
-入力ブロック全体が処理されるか、
-フォーマット文字列に合致するデータがブロックになくなるまで、
-繰り返し回数を増加させる。
-.Pp
-ユーザーの指定、
-または hexdump が上で説明したように繰り返し回数を変更した結果、
-繰り返し回数が 2 回以上になった場合、
+.PP
+各フォーマット文字列によって解釈・変換されるデータの量は、
+各フォーマット単位が要求するデータの合計である。
+各フォーマット単位が要求するデータは、(繰り返し回数) x (バイト数) である。
+バイト数が指定されていない場合は、
+(繰り返し回数) x (そのフォーマットが要求するバイト数) になる。
+.PP
+入力は \fIブロック\fP 単位で処理される。ここで言うブロックとは、
+フォーマット文字列のいずれかによって指定されるデータの量のうちで、
+最大のもののことである (訳注: そのようにブロックの大きさが決まると、
+複数のフォーマット文字列が指定されている場合は、
+その各フォーマット文字列が、同じ 1 つの処理単位 (つまり、\fIブロック\fP)
+に繰り返し適用されることになる)。入力ブロック
+1 個分のデータより少ないバイト数しか解釈しないフォーマット文字列については、
+\fIその最後のフォーマット単位\fPが、何バイトかを解釈・変換するものであり、
+しかも繰り返し回数が\fI指定されていない\fPならば、
+その繰り返し回数を増加させて、入力ブロック全体の処理が済むか、
+あるいは、フォーマット文字列の要求を満たすだけのデータがブロックになくなるまで、処理を続ける。
+.PP
+ユーザの指定によって、あるいは、上述のように \fBhexdump\fP
+が繰り返し回数を変更していることによって、繰り返し回数が
+2 回以上になっている場合は、(訳注: そのフォーマット単位で、たとえば
+\&'8/1 "%02x "' や '"%_p "'
+のように、各出力項目の末尾に空白を追加することになっていても)
 最後の繰り返しにおける末尾の空白は出力されない。
-.Pp
-バイト数を複数の変換文字と共に指定すると、
-1 つを除いた全ての変換文字が
-.Cm \&_a
-または
-.Cm \&_A
-である場合以外は、エラーになる。
-.Pp
-.Fl n
-オプションで指定したバイト数分、またはファイル終端に達したときに、
-入力データがフォーマット文字列の一部分にしか満たさない場合、
-有効なデータを全て表示するために、入力ブロックには適切な数の 0 が補われる
-(すなわち、データの終端にまたがっているフォーマット単位は、
-何個かの 0 のバイトを表示する)。
-.Pp
-このようなフォーマット文字列によるさらなる出力は、
-等数の空白で置き換えられる。
-等数の空白とは、元々の変換文字とフィールド幅と精度は同じで、
-変換フラグ文字
-.Dq Li \&+ ,
-.Dq \&\ \& ,
-.Dq Li \&#
-を取り除いた
-.Cm s
-変換文字が NULL 文字列を参照した場合に出力される数の空白である。
-.Pp
-フォーマット文字列が指定されない場合、
-デフォルトの表示は
-.Fl x
-オプションを指定した場合と同じである。
-.Pp
-.Nm
-は成功すると 0 を返して終了する。
-エラーが起こった場合は、1 以上を返して終了する。
-.Sh 例
-入力を perusal (詳しく閲覧する) フォーマットで表示する:
-.Bd -literal -offset indent
-"%06.6_ao "  12/1 "%3_u "
-"\et\et" "%_p "
-"\en"
-.Ed
-.Pp
+.PP
+フォーマット単位で、バイト数とともに複数の変換文字や変換文字列を指定するのは誤用である。
+ただし、変換文字や変換文字列の 1 つ以外のすべてが、
+\fB\&_a\fP や \fB\&_A\fP であるときは、問題がない。
+.PP
+\fB\-n\fP オプションを指定したり、ファイルの終わりに達したために、
+入力データがフォーマット文字列の一部しか満たさなかった場合、
+その入力ブロックには、利用できるすべてのデータを表示するのに足りるだけのゼロバイト
+(ASCII NUL) が補われる
+(換言すると、フォーマット単位が、データの末尾からはみ出している場合、
+そのフォーマット単位は、いくつかのゼロバイトを表示することになる)。
+.PP
+そうしたフォーマット文字列による追加の出力は、相当する数の空白で置き換えられる。
+相当する数の空白というのは、\fBs\fP
+変換文字が、実際に指定されている変換文字や変換文字列と同じフィールド幅と精度を持ち、
+\&'\fB\&+\fP', \' \', '\fB\&#\fP'
+と言った変換フラグが付いていれば、それを取り除いたときに、
+NULL 文字列に対して出力する数の空白のことである。
+.PP
+フォーマット文字列が指定されていない場合、デフォルトの表示は、\fB\-x\fP
+オプションの出力形式とよく似たものになる (ただし、\fB\-x\fP
+オプションを付けた方が、フォーマット単位間のスペースがデフォルトの出力より広くなる)。
+.SH 終了ステータス
+\fBhexdump\fP は成功すると 0 を返して終了する。
+エラーが起きた場合は、1 以上を返して終了する。
+.SH 用例
+入力を「ためつすがめつ見直し」フォーマットで表示する:
+.nf
+   "%06.6_ao "  12/1 "%3_u "
+   "\et\et" "%_p "
+   "\en"
+.nf
+.PP
 \-x オプションを実装する:
-.Bd -literal -offset indent
-"%07.7_Ax\en"
-"%07.7_ax  " 8/2 "%04x " "\en"
-.Ed
-.Sh 準拠
-.Nm
-ユーティリティは
-.St -p1003.2
+.nf
+   "%07.7_Ax\en"
+   "%07.7_ax  " 8/2 "%04x " "\en"
+.nf
+.PP
+MBR ブートシグネチャの例: アドレスをシアンで、オフセット 510 と 511
+にあるバイトの値が 0xAA55 の場合は緑、その他の場合は赤でハイライトする。
+.nf
+   "%07.7_Ax_L[cyan]\en"
+   "%07.7_ax_L[cyan]  " 8/2 "   %04x_L[green:0xAA55@510\-511,!red:0xAA55@510\-511] " "\en"
+.nf
+.SH カラー表示
+空ファイル \fI/etc/terminal\-colors.d/hexdump.disable\fP
+を置くことで、暗黙のカラー表示を無効化できる。
+
+カラー設定の詳細については \fBterminal\-colors.d\fP(5) を参照していただきたい。
+.SH 規格
+\fBhexdump\fP ユーティリティは IEEE Std 1003.2 ("POSIX.2")
 に適合しているはずである。
-.Sh 翻訳者謝辞
-この man ページの翻訳にあたり、
-FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/>
-による翻訳を参考にさせていただいた。
+.SH 入手方法
+この hexdump コマンドは、util\-linux パッケージの一部であり、
+.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util\-linux/
+Linux Kernel Archive
+.UE
+から入手できる。
+.SH 翻訳者謝辞
+この man ページの翻訳の最初のバージョンは、NetBSD jman proj
+から寄贈していただいたものだった。また、翻訳にあたっては、FreeBSD
+jpman project <http://www.jp.freebsd.org/man-jp/>
+による翻訳を参考にさせていただいた。両プロジェクトの翻訳者の方々にお礼を申し上げる。
+.SH "おまけ"
+説明がわかりにくかったと思うので、翻訳者の判断で、用例をもう一つ追加して、説明を補足してみる。
+却って混乱が増すようなら、読み飛ばしていただきたい。\fBhexdump -C\fP
+のエミュレーションをしてみよう。次のような内容のファイルを
+hexchar.fmt という名前で作成する。
+.PP
+.nf
+   "%08.8_Ax\en"
+   "%08.8_ax  " 8/1 "%02x " "  " 8/1 "%02x "
+   "  |" "%_p"
+   "|\en"
+.fi
+.PP
+各行がフォーマット文字列であり、「"%08.8_ax\ \ "」 「8/1\ "%02x\ "」
+「"\ \ "」 「"\ \ |"」 「"%_p"」 といった部分がフォーマット単位、
+ダブルクォート (" ") で囲まれた部分がフォーマットである。
+フォーマット単位には、繰り返し回数やバイト数の指定がなく、
+フォーマットしか含まれていないこともある。
+.sp
+入力データは、一定の量ごとに分割されて処理される。その一定の量がブロックだが、
+ブロックの大きさは、フォーマット文字列の中で最大のデータを要求しているものによって決まる。
+上の場合なら、最大のデータを要求しているのは、2 行目であり
+(ほかの行はデータの量を指定していない)、1 バイトが 8 回、さらに 1 バイトが
+8 回繰り返し処理されるわけだから、合計で 16 バイトが要求されていることになる。
+従って、ブロックの大きさは 16 バイトである。言い換えれば、この例では、入力データは
+16 バイトずつ処理されるということだ。
+.sp
+.sp
+各フォーマット文字列は、同一のブロックに対して順番に適用される。
+しかも、それぞれが、そのブロックの先頭に戻って、適用されていく。
+.sp
+1 行目は、「すべての入力データの処理が終わったときに、最後から 
+1 つ先のオフセットを表示せよ」ということだから、ブロックのデータの処理とは関係がない。
+.sp
+2 行目の「"%08.8_ax\ \ " 8/1 "%02x\ " "\ \ " 8/1 "%02x\ "」の意味はこうである。
+「まず、次に表示するバイトのオフセットを 8 桁の
+16 進数で、先頭を 0 で埋めて表示し、空白を 2 個続ける。それから、1 バイトずつ
+8 個 のデータを、2 桁の 16 進数で後ろに空白を付けて
+(つまり、空白で区切って) 表示し、空白を 2 個置いて、さらに 1 バイトずつ
+8 個のデータを、2 桁の 16 進数で空白で区切って表示せよ」。
+.sp
+3 行目の「"\ \ |" "%_p"」が指示しているのは、「2
+行目による出力にすぐ続けて、同じ出力行にまず '\ \ |'
+という文字列を表示し、それから、2 行目が処理したのと同じブロックに対して
+1 バイトずつ '_p' 変換をして (つまり、ASCII 文字で) 出力せよ」ということだ。
+3 行目は、「最後のフォーマット単位が、何バイトかを解釈・変換するものであり、
+しかも繰り返し回数が指定されていない」ので、ブロック全体の処理が済むまで、
+最後のフォーマット単位 "%_p" による処理が繰り返されることになる。
+.sp
+仮に、3 行目と 4 行目を 1 つにし、3 行目を「"\ \ |" "%_p" "|\en"」という形にすると、
+フォーマット文字列の「最後のフォーマット単位が、
+何バイトかを解釈・変換するもの」ではなくなるので、
+自動的な繰り返しの増加が行われないことになる。それ故、両者は別の行になっている。
+.sp
+4 行目は、データに対する処理は何も指定せず、「3 行目による出力のすぐ後ろに '|'
+という文字を書き出してから改行せよ」とだけ指示している。
+.sp
+このすべてが終わると、次のブロックに移って、同じ処理を繰り返していく。
+.sp
+結果として、\fBhexdump -f hexchar.fmt sample.txt\fP を実行すれば、
+\fBhexdump -C sample.txt\fP と同じ結果が得られるはずである。
index ba0b3b5..d7ed37c 100644 (file)
@@ -12,9 +12,9 @@
 ×:util-linux:2.34:0000/00/00:fallocate:1:::::
 ×:util-linux:2.34:0000/00/00:fincore:1:::::
 ☆:util-linux:2.12r=>2.34:0000/00/00:flock:1:2005/06/04::ysato444@yahoo.co.jp:Yuichi SATO:
\98\86:util-linux:2.12r=>2.34:0000/00/00:getopt:1:2003/04/27::ysato444@yahoo.co.jp:Yuichi SATO:
\97\8b:util-linux:2.34:2014/12/00:getopt:1:2020/04/14::cyoichi@maple.ocn.ne.jp:Chonan Yoichi:
 ×:util-linux:2.34:0000/00/00:hardlink:1:::::
\98\86:util-linux:2.12r=>2.34:0000/00/00:hexdump:1:2002/04/13::ysato@h4.dion.ne.jp:Yuichi SATO:
\97\8b:util-linux:2.34:2013/04/00:hexdump:1:2020/04/15::cyoichi@maple.ocn.ne.jp:Chonan Yoichi:
 ×:util-linux:2.34:0000/00/00:ionice:1:::::
 ×:util-linux:2.34:0000/00/00:ipcmk:1:::::
 ×:util-linux:2.34:0000/00/00:ipcrm:1:::::