[原文] .TH SED "1" "January 2020" "sed 4.8" "User Commands" [訳文] .TH SED 1 2020年1月 "sed 4.8" ユーザーコマンド ---------------------------------------- [原文] .SH NAME sed - stream editor for filtering and transforming text [訳文] .SH 名前 sed - テキストのフィルタリング、変換用のストリームエディター ---------------------------------------- [原文] .SH SYNOPSIS .B sed [OPTION]... {script-only-if-no-other-script} [input-file]... [訳文] .SH 書式 sed [OPTION]... {script-only-if-no-other-script} [input-file]... ---------------------------------------- [原文] .SH DESCRIPTION .ds sd sed .ds Sd Sed \*(Sd is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline). While in some ways similar to an editor which permits scripted edits (such as ed), \*(sd works by making only one pass over the input(s), and is consequently more efficient. But it is \*(sd's ability to filter text in a pipeline which particularly distinguishes it from other types of editors. [訳文] .SH 説明 .ds sd sed .ds Sd Sed \*(sd はストリームエディターである。ストリームエディターは、入力ス トリーム (ファイルまたはパイプラインからの入力) に対して基本的なテキスト変換を行うために用いられる。\*(sd は 編集スクリプトを使える (ed のような) エディターと いろいろな面で似ているが、\*(sd は入力に対して 1 パスだけで動作するので、より効率的である。また \*(sd はパイプラインのテキストに対してフィルター動作を行うことがで き、この点は他のタイプのエディターとはっきり違う。 ---------------------------------------- [原文] .HP -n, --quiet, --silent [訳文] .HP -n, --quiet, --silent ---------------------------------------- [原文] .IP suppress automatic printing of pattern space [訳文] .IP パターンスペースの自動出力を抑制する ---------------------------------------- [原文] .HP --debug [訳文] .HP --debug ---------------------------------------- [原文] .IP annotate program execution [訳文] .IP プログラム実行状況を表示する ---------------------------------------- [原文] .HP -e script, --expression=script [訳文] .HP -e script, --expression=script ---------------------------------------- [原文] .IP add the script to the commands to be executed [訳文] .IP 実行するコマンドとして script を追加する ---------------------------------------- [原文] .HP -f script-file, --file=script-file [訳文] .HP -f script-file, --file=script-file ---------------------------------------- [原文] .IP add the contents of script-file to the commands to be executed [訳文] .IP 実行するコマンドとして script-file の内容を追加する ---------------------------------------- [原文] .HP --follow-symlinks [訳文] .HP --follow-symlinks ---------------------------------------- [原文] .IP follow symlinks when processing in place [訳文] .IP インプレース処理においてシンボリックリンクをたどる ---------------------------------------- [原文] .HP -i[SUFFIX], --in-place[=SUFFIX] [訳文] .HP -i[SUFFIX], --in-place[=SUFFIX] ---------------------------------------- [原文] .IP edit files in place (makes backup if SUFFIX supplied) [訳文] .IP ファイルをインプレース処理で編集する (SUFFIX 指定時はバックアップを取る) ---------------------------------------- [原文] .HP -l N, --line-length=N [訳文] .HP -l N, --line-length=N ---------------------------------------- [原文] .IP specify the desired line-wrap length for the `l' command [訳文] .IP `l' コマンドの出力行を折り返す長さを指定する ---------------------------------------- [原文] .HP --posix [訳文] .HP --posix ---------------------------------------- [原文] .IP disable all GNU extensions. [訳文] .IP 全ての GNU 拡張を無効にする ---------------------------------------- [原文] .HP -E, -r, --regexp-extended [訳文] .HP -E, -r, --regexp-extended ---------------------------------------- [原文] .IP use extended regular expressions in the script (for portability use POSIX -E). [訳文] .IP スクリプトで拡張正規表現を使用する (-E 利用は POSIX 互換性のため) ---------------------------------------- [原文] .HP -s, --separate [訳文] .HP -s, --separate ---------------------------------------- [原文] .IP consider files as separate rather than as a single, continuous long stream. [訳文] .IP 複数の入力ファイルを一続きのストリームとして扱わずに個別のフ ァイルとして扱う ---------------------------------------- [原文] .HP --sandbox [訳文] .HP --sandbox ---------------------------------------- [原文] .IP operate in sandbox mode (disable e/r/w commands). [訳文] .IP サンドボックス (sandbox) モードで実行する (e/r/w コマンドを無効にする) ---------------------------------------- [原文] .HP -u, --unbuffered [訳文] .HP -u, --unbuffered ---------------------------------------- [原文] .IP load minimal amounts of data from the input files and flush the output buffers more often [訳文] .IP 入力ファイルからデータをごく少量ずつ取り込み、頻繁に出力バッ ファを掃き出す (flush) ---------------------------------------- [原文] .HP -z, --null-data [訳文] .HP -z, --null-data ---------------------------------------- [原文] .IP separate lines by NUL characters [訳文] .IP NUL 文字で行を分割する ---------------------------------------- [原文] .TP --help display this help and exit [訳文] .TP --help ヘルプを表示して終了する ---------------------------------------- [原文] .TP --version output version information and exit [訳文] .TP --version バージョン情報を出力して終了する ---------------------------------------- [原文] .PP If no -e, --expression, -f, or --file option is given, then the first non-option argument is taken as the sed script to interpret. All remaining arguments are names of input files; if no input files are specified, then the standard input is read. [訳文] .PP -e、--expression、-f、または --file オプションのいずれも指定されない場合、最初のオプションでない 引数が sed スクリプトとして解釈される。 残りの全ての引数は入力ファイル名として扱われる。 入力ファイルが指定されない場合は、標準入力から読み込む。 ---------------------------------------- [原文] .PP GNU sed home page: . General help using GNU software: . E-mail bug reports to: . [訳文] .PP GNU sed ホームページ: . GNU ソフトウェアを使用する際の一般的なヘルプ: . 電子メールによるバグレポートの宛先: ---------------------------------------- [原文] .SH "COMMAND SYNOPSIS" This is just a brief synopsis of \*(sd commands to serve as a reminder to those who already know \*(sd; other documentation (such as the texinfo document) must be consulted for fuller descriptions. [訳文] .SH コマンドの文法 これは \*(sd コマンドのごく簡単な概要であり、既に sed を知っている人向けの備忘録程度のものである。 より詳細な情報については、他の文書 (texinfo 文書など) を参照すること。 ---------------------------------------- [原文] .SS Zero-address ``commands'' [訳文] .SS アドレスを取らないコマンド ---------------------------------------- [原文] .TP .RI :\ label Label for .B b and .B t commands. [訳文] .TP :\ label b コマンドと t コマンド用のラベル。 ---------------------------------------- [原文] .TP .RI # comment The comment extends until the next newline (or the end of a .B -e script fragment). [訳文] .TP #comment 次の改行文字まで (あるいは -e スクリプトフラグメントの末尾まで) をコメントとして取り扱う。 ---------------------------------------- [原文] .TP } The closing bracket of a { } block. [訳文] .TP } { } ブロックの閉じ括弧。 ---------------------------------------- [原文] .SS Zero- or One- address commands [訳文] .SS "アドレスを 0 または 1 つ取るコマンド" ---------------------------------------- [原文] .TP = Print the current line number. [訳文] .TP = 現在の行番号を出力する。 ---------------------------------------- [原文] .TP a \e [訳文] .TP a \e ---------------------------------------- [原文] .TP .I text Append .IR text , which has each embedded newline preceded by a backslash. [訳文] .TP text text を追加する。 text に改行を含める場合は、各改行の前にバックスラッシュを置く。 ---------------------------------------- [原文] .TP i \e [訳文] .TP i \e ---------------------------------------- [原文] .TP .I text Insert .IR text , which has each embedded newline preceded by a backslash. [訳文] .TP text text を挿入する。 text に改行を含める場合は、各改行の前にバックスラッシュを置く。 ---------------------------------------- [原文] .TP q [exit-code] Immediately quit the \*(sd script without processing any more input, except that if auto-print is not disabled the current pattern space will be printed. The exit code argument is a GNU extension. [訳文] .TP q [exit-code] これ以上入力を処理せず、ただちに \*(sd スクリプトの処理を終了する。 ただし自動出力が抑制されていない場合、 現在のパターンスペースが出力される。 引数 exit-code は GNU 拡張である。 ---------------------------------------- [原文] .TP Q [exit-code] Immediately quit the \*(sd script without processing any more input. This is a GNU extension. [訳文] .TP Q [exit-code] これ以上入力を処理せず、ただちに \*(sd スクリプトの処理を終了する。 引数 exit-code は GNU 拡張である。 ---------------------------------------- [原文] .TP .RI r\ filename Append text read from .IR filename . [訳文] .TP r\ filename filename から読み込んだテキストを追加する。 ---------------------------------------- [原文] .TP .RI R\ filename Append a line read from .IR filename . Each invocation of the command reads a line from the file. This is a GNU extension. [訳文] .TP R\ filename filename から 1 行読み込み、追加する。 コマンドを起動するたびにファイルから次の 1 行を読み込む。 このコマンドは GNU 拡張である。 ---------------------------------------- [原文] .SS Commands which accept address ranges [訳文] .SS アドレス範囲を指定できるコマンド ---------------------------------------- [原文] .TP { Begin a block of commands (end with a }). [訳文] .TP { コマンドブロックを開始する (} で終了する)。 ---------------------------------------- [原文] .TP .RI b\ label Branch to .IR label ; if .I label is omitted, branch to end of script. [訳文] .TP b\ label label に分岐する。 label が省略された場合は、スクリプトの末尾に分岐する。 ---------------------------------------- [原文] .TP c \e [訳文] .TP c \e ---------------------------------------- [原文] .TP .I text Replace the selected lines with .IR text , which has each embedded newline preceded by a backslash. [訳文] .TP text 選択した行を text で置換する。 text に改行を含めたい場合は、その前にバックスラッシュを置く。 ---------------------------------------- [原文] .TP d Delete pattern space. Start next cycle. [訳文] .TP d パターンスペースを削除する。 次のサイクルを開始する。 ---------------------------------------- [原文] .TP D If pattern space contains no newline, start a normal new cycle as if the d command was issued. Otherwise, delete text in the pattern space up to the first newline, and restart cycle with the resultant pattern space, without reading a new line of input. [訳文] .TP D パターンスペースに改行がない場合は、d コマンドと同様に通常の次のサイクルを開始する。 そうでない場合は、パターンスペースの最初の改行までを削除し、 次の入力行を読み込まずに、その結果のパターンスペースでサイク ルを開始する。 ---------------------------------------- [原文] .TP h H Copy/append pattern space to hold space. [訳文] .TP h H パターンスペースをホールドスペースにコピー/追加する。 ---------------------------------------- [原文] .TP g G Copy/append hold space to pattern space. [訳文] .TP g G ホールドスペースをパターンスペースにコピー/追加する。 ---------------------------------------- [原文] .TP l List out the current line in a ``visually unambiguous'' form. [訳文] .TP l 現在の行を「視覚的に曖昧性のない」形式で一覧出力する。 ---------------------------------------- [原文] .TP .RI l\ width List out the current line in a ``visually unambiguous'' form, breaking it at .I width characters. This is a GNU extension. [訳文] .TP l\ width 現在の行を「視覚的に曖昧性のない」形式でリストし、width の文字で折り返す。 このコマンドは GNU 拡張である。 ---------------------------------------- [原文] .TP n N Read/append the next line of input into the pattern space. [訳文] .TP n N 入力の次の行をパターンスペースに読み込む/追加する。 ---------------------------------------- [原文] .TP p Print the current pattern space. [訳文] .TP p 現在のパターンスペースを出力する。 ---------------------------------------- [原文] .TP P Print up to the first embedded newline of the current pattern space. [訳文] .TP P 現在のパターンスペースの最初の改行までを出力する。 ---------------------------------------- [原文] .TP .RI s/ regexp / replacement / Attempt to match .I regexp against the pattern space. If successful, replace that portion matched with .IR replacement . The .I replacement may contain the special character .B & to refer to that portion of the pattern space which matched, and the special escapes \e1 through \e9 to refer to the corresponding matching sub-expressions in the .IR regexp . [訳文] .TP s/regexp/replacement/ パターンスペースに対して regexp のマッチを試みる。 マッチに成功すると、マッチした部分を replacement に置換する。 replacement には特殊文字である & を含めることができ、これはパターンスペースのマッチした部分を 参照する。 また \e1 から \e9 までの特殊エスケープを含むこともでき、これは regexp の部分正規表現 (sub-expression) にマッチした部分をそれぞれ参照する。 ---------------------------------------- [原文] .TP .RI t\ label If a s/// has done a successful substitution since the last input line was read and since the last t or T command, then branch to .IR label ; if .I label is omitted, branch to end of script. [訳文] .TP t\ label 直近の入力行が読み込まれて以降、かつ、直近の t あるいは T コマンド以降に、s コマンドが成功していれば、label に分岐する。 label が省略された場合は、スクリプトの末尾に分岐する。 ---------------------------------------- [原文] .TP .RI T\ label If no s/// has done a successful substitution since the last input line was read and since the last t or T command, then branch to .IR label ; if .I label is omitted, branch to end of script. This is a GNU extension. [訳文] .TP T\ label 直近の入力行が読み込まれて以降、かつ、直近の t あるいは T コマンド以降に、s コマンドが成功していなければ、label に分岐する。 label が省略された場合は、スクリプトの末尾に分岐する。 このコマンドは GNU 拡張である。 ---------------------------------------- [原文] .TP .RI w\ filename Write the current pattern space to .IR filename . [訳文] .TP w\ filename 現在のパターンスペースを filename に書き込む。 ---------------------------------------- [原文] .TP .RI W\ filename Write the first line of the current pattern space to .IR filename . This is a GNU extension. [訳文] .TP W\ filename 現在のパターンスペースの先頭行を filename に書き込む。 このコマンドは GNU 拡張である。 ---------------------------------------- [原文] .TP x Exchange the contents of the hold and pattern spaces. [訳文] .TP x ホールドスペースとパターンスペースの内容を交換する。 ---------------------------------------- [原文] .TP .RI y/ source / dest / Transliterate the characters in the pattern space which appear in .I source to the corresponding character in .IR dest . [訳文] .TP y/source/dest/ パターンスペースにある文字のうち、source にあるものを、dest の同じ位置にある文字に置換する。 ---------------------------------------- [原文] .SH Addresses \*(Sd commands can be given with no addresses, in which case the command will be executed for all input lines; with one address, in which case the command will only be executed for input lines which match that address; or with two addresses, in which case the command will be executed for all input lines which match the inclusive range of lines starting from the first address and continuing to the second address. Three things to note about address ranges: the syntax is .IR addr1 , addr2 (i.e., the addresses are separated by a comma); the line which .I addr1 matched will always be accepted, even if .I addr2 selects an earlier line; and if .I addr2 is a .IR regexp , it will not be tested against the line that .I addr1 matched. [訳文] .SH アドレス \*(sd のコマンドはアドレスなしで指定することもでき、この場合そのコ マンドは全ての入力行に対して実行される。 アドレスをひとつ指定すると、コマンドはそのアドレスにマッチし た入力行に対してのみ実行される。 2 つのアドレスを指定すると、最初のアドレスにマッチした行から、 2 番目のアドレスにマッチした行に至る範囲 (両マッチ行を含む) にあるすべての行に対して実行される。 アドレスの範囲指定については次の 3 点を注意しておく。 まず指定方法は addr1,addr2 である (つまりアドレスをコンマで区切る)。 addr1 にマッチした行は、たとえaddr2 がそれ以前の行にマッチする場合でも、常に処理対象となる。 addr2 が regexp (正規表現) の場合には、addr1 にマッチした行に対しては addr2 のマッチは行われない。 ---------------------------------------- [原文] .PP After the address (or address-range), and before the command, a .B ! may be inserted, which specifies that the command shall only be executed if the address (or address-range) does .B not match. [訳文] .PP アドレス (あるいはアドレス範囲) とコマンドの間には ! を挟むことができる。 この場合は、アドレス (あるいはアドレス範囲) がマッチしなかった行に対してのみコマンドが実行される。 ---------------------------------------- [原文] .PP The following address types are supported: [訳文] .PP 以下のアドレスタイプがサポートされている。 ---------------------------------------- [原文] .TP .I number Match only the specified line .IR number (which increments cumulatively across files, unless the .B -s option is specified on the command line). [訳文] .TP number number で指定した行にのみマッチする (コマンドラインで -s オプションを指定していない場合、行数はファイル間で通算でカウ ントされる)。 ---------------------------------------- [原文] .TP .IR first ~ step Match every .IR step 'th line starting with line .IR first . For example, ``sed -n 1~2p'' will print all the odd-numbered lines in the input stream, and the address 2~5 will match every fifth line, starting with the second. .I first can be zero; in this case, \*(sd operates as if it were equal to .IR step . (This is an extension.) [訳文] .TP first~step first 行からはじまる step 行おきの行にマッチする。 例えば \*(lqsed -n 1~2p\*(rq は 入力行のうち奇数行を出力し、アドレスを 2~5 にすると、第 2 行から 5 行おきに表示する。 first は 0 を指定することが可能である。 この場合、step に等しい値が指定されたものとして \*(sd は処理する (これは GNU 拡張である)。 ---------------------------------------- [原文] .TP $ Match the last line. [訳文] .TP $ 最終行にマッチする。 ---------------------------------------- [原文] .TP .RI / regexp / Match lines matching the regular expression .IR regexp . Matching is performed on the current pattern space, which can be modified with commands such as ``s///''. [訳文] .TP /regexp/ 正規表現 regexp に合致するような行にマッチする。 マッチングは現在のパターン領域において行われる。 これは \*(lqs///\*(rq のようなコマンドにより変更される。 ---------------------------------------- [原文] .TP .BI \fR\e\fPc regexp c Match lines matching the regular expression .IR regexp . The .B c may be any character. [訳文] .TP \ecregexpc 正規表現 regexp にマッチした行にマッチする。 c には任意の文字を指定できる。 ---------------------------------------- [原文] .PP GNU \*(sd also supports some special 2-address forms: [訳文] .PP GNU \*(sd は、次の特殊な 2 アドレス形式もサポートする。 ---------------------------------------- [原文] .TP .RI 0, addr2 Start out in "matched first address" state, until .I addr2 is found. This is similar to .RI 1, addr2 , except that if .I addr2 matches the very first line of input the .RI 0, addr2 form will be at the end of its range, whereas the .RI 1, addr2 form will still be at the beginning of its range. This works only when .I addr2 is a regular expression. [訳文] .TP 0,addr2 「先頭アドレスにマッチした状態」で開始し、addr2 が見つかるまでその状態を維持する。 これは、1,addr2 に類似しているが、次の点において挙動が異なる。 addr2 が入力の先頭行にマッチする場合、0,addr2 形式ではアドレス範囲の終了位置にあるとみなされるが、1,addr2 形式ではアドレス範囲の開始位置にあるとみなされる。 このアドレス指定は、addr2 が正規表現の場合にのみ機能する。 ---------------------------------------- [原文] .TP .IR addr1 ,+ N Will match .I addr1 and the .I N lines following .IR addr1 . [訳文] .TP addr1,+N addr1 から、addr1 以降の N 行にマッチする。 ---------------------------------------- [原文] .TP .IR addr1 ,~ N Will match .I addr1 and the lines following .I addr1 until the next line whose input line number is a multiple of .IR N . [訳文] .TP addr1,~N addr1 から、addr1 以降の、入力行番号が N の倍数の行までマッチする。 ---------------------------------------- [原文] .SH "REGULAR EXPRESSIONS" POSIX.2 BREs .I should be supported, but they aren't completely because of performance problems. The .B \en sequence in a regular expression matches the newline character, and similarly for .BR \ea , .BR \et , and other sequences. The -E option switches to using extended regular expressions instead; it has been supported for years by GNU sed, and is now included in POSIX. [訳文] .SH 正規表現 POSIX.2 BRE をサポートするべきであるが、性能上の問題により完全にはサポー トしていない。 正規表現内部の \en シーケンスは改行文字にマッチし、\ea、\et、およびその他のシー ケンスも同様である。 このかわりに -E オプションは拡張正規表現の利用に切り替えるものである。 この拡張正規表現は、これまでに長らく GNU sed においてサポートされ、現在は POSIX に含まれるようになった。 ---------------------------------------- [原文] .SH BUGS [訳文] .SH バグ ---------------------------------------- [原文] .PP E-mail bug reports to .BR bug-sed@gnu.org . Also, please include the output of ``sed --version'' in the body of your report if at all possible. [訳文] .PP バグレポートは bug-sed@gnu.org まで送ること。また可能であれば、 「sed --version」の出力結果をレポート本文に記載すること。 ---------------------------------------- [原文] .SH AUTHOR Written by Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering, and Assaf Gordon. [訳文] .SH 著者 Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering, Assaf Gordon. ---------------------------------------- [原文] .PP This sed program was built with SELinux support. SELinux is enabled on this system. [訳文] .PP この sed プログラムは SELinux サポートを含めてビルドされている。このシステム上においては SELinux が有効である。 ---------------------------------------- [原文] .PP GNU sed home page: . General help using GNU software: . E-mail bug reports to: . [訳文] .PP GNU sed ホームページ: . GNU ソフトウェアを使用する際の一般的なヘルプ: . 電子メールによるバグレポートの宛先: ---------------------------------------- [原文] .SH COPYRIGHT Copyright © 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. [訳文] .SH 著作権 Copyright © 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ---------------------------------------- [原文] .SH "SEE ALSO" .BR awk (1), .BR ed (1), .BR grep (1), .BR tr (1), .BR perlre (1), sed.info, any of various books on \*(sd, .na the \*(sd FAQ (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/. [訳文] .SH 関連項目 awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, \*(sd に関するさまざまな本, .na \*(sd FAQ (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/. ---------------------------------------- [原文] .PP The full documentation for .B sed is maintained as a Texinfo manual. If the .B info and .B sed programs are properly installed at your site, the command [訳文] .PP sed の完全な文書は、Texinfo マニュアルでメンテナンスされている。info と sed プログラムが適切にインストールされていれば、 ---------------------------------------- [原文] .IP .B info sed [訳文] .IP info sed ---------------------------------------- [原文] .PP should give you access to the complete manual. [訳文] .PP で、完全なマニュアルを参照することができる。 ----------------------------------------