これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドedposixです。
プログラム:
NAME
ed —テキストを編集
SYNOPSIS
ed [−p string] [−s] [file]
DESCRIPTION
この ed ユーティリティは、次のXNUMXつのモードを使用する行指向のテキストエディタです。 command モード と
モード。 コマンドモードでは、入力文字はコマンドとして解釈され、入力では
モードそれらはテキストとして解釈されます。 拡張説明のセクションを参照してください。
オペランドが '−'、結果は指定されていません。
OPTIONS
この ed ユーティリティは、POSIX.1‐2008の基本定義ボリュームに準拠する必要があります。 セクション 12.2,
ユーティリティ 構文 ガイドライン、の不特定の使用法を除いて '−'.
次のオプションがサポートされます。
−p string string コマンドモードの場合のプロンプト文字列として。 デフォルトでは、
プロンプト文字列はありません。
−s によってバイトカウントの書き込みを抑制します e, E, r, w コマンドとの 「!」
!の後にプロンプトを表示します command.
オペランド
次のオペランドがサポートされます。
file Status file 引数が与えられ、 ed をシミュレートする e 名前の付いたファイルに対するコマンド
パス名で、 file、標準入力からのコマンドを受け入れる前。
標準入力
標準入力は、コマンドで構成されるテキストファイルである必要があります。
拡張説明セクション。
入力 ファイル
入力ファイルはテキストファイルでなければなりません。
ENVIRONMENT 変数
次の環境変数は、の実行に影響を与えます。 ed:
ホーム ユーザーのホームディレクトリのパス名を決定します。
言語 設定されていない、または設定されていない国際化変数のデフォルト値を指定します
ヌル。 (POSIX.1‐2008の基本定義ボリュームを参照してください。 セクション 8.2,
国際化 Variables 国際化の優先順位について
ロケールカテゴリの値を決定するために使用される変数。)
LC_ALL 空でない文字列値に設定されている場合は、他のすべての値を上書きします
国際化変数。
LC_COLLATE
範囲、同値類、および複数の動作のロケールを決定します。
正規表現内の文字照合要素。
LC_CTYPE テキストデータのバイトシーケンスを解釈するためのロケールを決定します
文字として(たとえば、のマルチバイト文字ではなくシングルバイト
引数と入力ファイル)および通常の文字クラス内の動作
式。
LC_MESSAGES
の形式と内容に影響を与えるために使用する必要があるロケールを決定します
標準エラーに書き込まれた診断メッセージと書き込まれた有益なメッセージ
標準出力に。
NLSパス の処理のためのメッセージカタログの場所を決定します LC_MESSAGES.
非同期 イベント
この ed ユーティリティは、すべての信号に対して標準アクションを実行する必要があります(非同期イベントを参照)。
のセクション セクション 1.4, ユーティリティ 説明 デフォルト)次の例外を除きます。
シギント ed ユーティリティは現在のアクティビティを中断し、文字列を書き込みます "?\NS" 〜へ
標準出力、およびコマンドモードに戻ります(拡張説明を参照)
セクション)。
SIGHUPバッファが空ではなく、最後の書き込み以降に変更された場合、 ed ユーティリティ
バッファのコピーをファイルに書き込もうとします。 まず、という名前のファイル
編集者 現在のディレクトリで使用されます。 それが失敗した場合、という名前のファイル
編集者 によって指定されたディレクトリ内 ホーム 環境変数を使用する必要があります。 の
いずれにせよ、 ed ユーティリティは、現在のファイルにファイルを書き込まずに終了します。
パス名を記憶し、コマンドモードに戻らない。
SIGQUIT ed ユーティリティはこのイベントを無視します。
標準出力
さまざまな編集コマンドとプロンプト機能(を参照) −p)標準出力に書き込みます。
詳細な説明のセクションで説明されています。
標準
標準エラーは、診断メッセージにのみ使用されます。
出力 ファイル
出力ファイルは、フォーマットが編集コマンドに依存するテキストファイルでなければなりません。
与えられた。
拡張済み DESCRIPTION
この ed ユーティリティは、編集中のファイルのコピーを操作する必要があります。 コピーに加えられた変更
までファイルに影響を与えないものとします w (書き込み)コマンドが与えられます。 テキストのコピー
と呼ばれて バッファ.
するコマンド ed シンプルで規則的な構造を持っている:XNUMX、XNUMX、またはXNUMX アドレス 続いて
XNUMX文字で command、おそらくそのコマンドへのパラメータが続きます。 これらは
アドレスは、バッファ内のXNUMXつ以上の行を指定します。 アドレスを必要とするすべてのコマンド
にはデフォルトのアドレスがあるため、アドレスを省略できることがよくあります。 の場合 −p オプション
が指定されている場合、各コマンドが実行される前に、プロンプト文字列が標準出力に書き込まれます。
読み。
通常、XNUMX行に表示できるコマンドはXNUMXつだけです。 特定のコマンドを使用すると、テキストを
入力。 このテキストは、バッファ内の適切な場所に配置されます。 その間 ed 受け入れています
テキスト、それはにあると言われています モード。 このモードでは、コマンドは認識されません。 全て
入力は単に収集されます。 入力モードは、XNUMXつの行で構成される行を入力することによって終了します。
文字:a (('。')に続いて。 この行は一部とは見なされません
入力テキストの。
レギュラー 式 in ed
この ed ユーティリティは、ベースで説明されているように、基本的な正規表現をサポートする必要があります
POSIX.1‐2008の定義ボリューム、 セクション 9.3, Basic レギュラー 式。 通常から
の表現 ed 常に単一の行と照合されます(終了を除く)
文字)、テキストのより大きなセクションに対して決して反対することはありません、
に一致する正規表現。
null REは、最後に検出されたREと同等です。
正規表現は、行を指定するためのアドレス、および一部のコマンド(
例、 s 置換コマンド)置換する行の部分を指定します。
住所 in ed
でのアドレス指定 ed 現在の行に関連しています。 通常、現在の行は最後の行です
コマンドの影響を受けます。 現在の行番号は、現在の行のアドレスです。 の場合
編集バッファが空ではない場合、現在の行の初期値はの最後の行になります
編集バッファ。 それ以外の場合はゼロ。
アドレスは次のように構成されます。
1。 キャラクター ('。')現在の回線をアドレス指定する必要があります。
2。 キャラクター ('$')編集バッファの最後の行をアドレス指定します。
3.正のXNUMX進数 n に対処するものとします n編集バッファのXNUMX行目。
4。 -x文字ペア("'NS")マークでマークされた行に対処するものとします
名前の文字 x、これはポータブル文字セットの小文字でなければなりません。
文字が線をマークするように設定されていない場合、または線が線をマークするように設定されている場合はエラーになります
マークされたものは現在、編集バッファーに存在しません。
5.で囲まれたBRE 文字(「/」)によって検出された最初の行に対処するものとします
現在の行に続く行から編集の終わりに向かって前方に検索します
バッファリングし、終了を除く行が終了する最初の行で停止します
BREと一致します。 のペアで区切られたヌルBREで構成されるBRE
文字は、次の行をアドレス指定するものとします。
終了最後に検出されたBREと一致します。 さらに、XNUMX番目
コマンドラインの最後では省略できます。 BRE内では、
- ペア(「\ /」)はリテラルを表すものとしますBREの代わりに
デリミタ。 必要に応じて、検索はバッファの先頭にラップアラウンドする必要があります
バッファ全体が次のようになるように、現在の行まで続行します。
検索しました。
6.で囲まれたBRE 文字(「?」)最初に見つかった行に対応する必要があります
現在の行の前の行から先頭に向かって逆方向に検索する
編集バッファの最初の行で停止します。
終了BREと一致します。 で区切られたヌルBREで構成されるBRE
一対の文字(「??」)前の行に対応する必要があります
終端を除く行最後に検出されたBREと一致します。 の
さらに、XNUMX番目コマンドラインの最後では省略できます。
BRE内では、 - ペア(「\?」)はリテラルを表すものとします
BRE区切り文字の代わりに。 必要に応じて、検索は終了します
バッファの終わりまで回り、現在の行まで続けます。
バッファ全体が検索されること。
7. A ((「+」) またキャラクター ('−')の後にXNUMX進数が続くもの
現在の行のプラスマイナス数をアドレス指定します。 NS またキャラクター
1進数が続かない場合は、現在の行のプラスマイナスXNUMXをアドレス指定する必要があります。
アドレスの後には、オプションでXNUMX個以上のアドレスオフセットを続けることができます-分離。
アドレスオフセットは次のように構成されます。
* NS また文字の後にXNUMX進数が続く場合は、またはを追加する必要があります。
アドレスとの間で示された行数をそれぞれ減算します。 NS
サイン>または1進数が続かない文字は、XNUMXを加算または減算するものとします。
アドレスとの間で。
* XNUMX進数は、指定された行数をアドレスに追加するものとします。
中間アドレス値がゼロ未満であってもエラーであってはなりません。
編集バッファの最後の行より。 最終的なアドレス値が
ゼロ未満であるか、編集バッファーの最後の行よりも大きい必要があります。 エラーになります
BREの検索で一致する行が見つからない場合。
コマンドは、XNUMX、XNUMX、またはXNUMXつのアドレスを受け入れます。 必要なアドレス数を超える場合
ゼロアドレスを必要とするコマンドに提供された場合、それはエラーになります。 さもないと、
必要な数を超えるアドレスがコマンドに指定されている場合、アドレス
最初に指定されたものが評価され、有効な最大数になるまで破棄されます。
指定されたコマンドのアドレスは残ります。
住所は、 ((「、」) またキャラクター
(';')。 の場合セパレータ、現在の行('。')に設定する必要があります
最初のアドレス、そしてその時だけXNUMX番目のアドレスが計算されます。 この機能は
前方および後方検索の開始行を決定するために使用されます。 ルール5を参照してください。
と6。
アドレスは、のいずれかの側で省略できますまた区切り文字、
結果のアドレスペアは次のようになります。
┌──────────┬──────────────┐
│指定の │ 結果 │
├──────────┼──────────────┤
│、│1、$│
│、addr│1、addr│
│addr、│addr、addr│
│; │。 ; $│
│; addr│。 ; addr│
│addr; │addr; addr│
└──────────┴──────────────┘
どれでもアドレス、アドレス区切り文字、またはアドレスオフセットの間に含まれる文字
無視されます。
コマンド in ed
次のリストで ed コマンドの場合、デフォルトのアドレスは括弧内に示されています。 NS
デフォルトで表示されるアドレスの数は、コマンドで予期される数になります。 NS
括弧はアドレスの一部ではありません。 それらは、指定されたアドレスが
デフォルト。
通常、XNUMX行に複数のコマンドが表示されることは無効です。 ただし、
コマンド(除く e, E, f, q, Q, r, w, !)の末尾に文字を付けることができます l, nまたは pでは、
どちらの場合を除いて l, n, p コマンド、コマンドが実行され、その後
新しい現在の行は、以下の説明に従って記述されるものとします。 l, n, p コマンド。
とき l, nまたは p 接尾辞は l, nまたは p コマンド、コマンドはに書き込むものとします
以下に説明する標準出力ですが、接尾辞が
要求された形式の現在の行、またはサフィックスが効果がないかどうか。 にとって
例、 pl コマンド(ベース p とのコマンド l 接尾辞)は、
現在の行をXNUMX回書き込むか、XNUMX回は p そして一度指定されたように lよりも優先されます。また、
g, G, v, V コマンドは、パラメータとしてコマンドを取ります。
各アドレスコンポーネントの前には、XNUMX個以上を付けることができます文字。 コマンド
文字の前にXNUMX個以上を付けることができます文字。 接尾辞の場合(l, nまたは p)
が与えられた場合、アプリケーションはそれがコマンドの直後に続くことを保証するものとします。
この e, E, f, r, w コマンドはオプションを取ります file パラメータ、から分離
XNUMXつ以上のコマンドレター文字。
前回以降にバッファに変更が加えられた場合 w 全体を書いたコマンド
バッファ、 ed を介してエディタバッファを破壊しようとした場合、ユーザーに警告します。
e or q コマンド。 NS ed ユーティリティは文字列を書きます:
"?\NS"
(次の場合は説明メッセージが続きます 助けます モード を介して有効になっています H コマンド)から
標準出力であり、現在の行番号を変更せずにコマンドモードで続行します。
Status e or q コマンドは、コマンドを介在させずに繰り返され、有効になります。
端末が切断された場合(POSIX.1‐2008の基本定義ボリュームを参照してください。 章 11,
ターミナル インタフェース、モデムの切断とデバイス端末の閉鎖)が検出されました:
* SIGHUP信号を伴う場合、 ed ユーティリティは、に記載されているように動作するものとします。
SIGHUP信号の非同期イベントセクション。
* SIGHUP信号を伴わない場合、 ed ユーティリティは、ファイルの終わりのように機能するものとします
標準入力で検出されました。
標準入力でファイルの終わりが検出された場合:
*の場合 ed ユーティリティは入力モードですが、 ed 入力モードを終了し、に戻ります。
コマンドモード。 部分的に入力された行(つまり、入力テキスト)があるかどうかは指定されていません
終了せずに)は入力テキストから破棄されます。
*の場合 ed ユーティリティはコマンドモードであり、あたかも q コマンドが入力されました。
REまたは置換文字列の終了区切り文字(たとえば、 「/」)Aの g, G,
s, vまたは V コマンドは、前の最後の文字になります、その区切り文字は
省略された場合、アドレス指定された行が書き込まれます。 たとえば、次の
コマンドのペアは同等です。
s / s1 / s2 s / s1 / s2 / p
g / s1 g / s1 / p
?s1 ?s1?
無効なコマンドが入力された場合、 ed 文字列を書くものとします:
"?\NS"
(次の場合は説明メッセージが続きます 助けます モード を介して有効になっています H コマンド)から
標準出力であり、現在の行番号を変更せずにコマンドモードで続行します。
追加 Command
シノプシス:
(。)NS
<클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. >
.
この a コマンドは、指定されたテキストを読み取り、アドレス指定された行の後に追加します。 NS
現在の行番号は、最後に挿入された行のアドレスになります。
なし、アドレス指定された行。 アドレス0はこのコマンドに有効です。 それは原因となります
バッファの先頭に配置される追加テキスト。
前日比 Command
シノプシス:
(。、。)NS
<클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. >
.
この c コマンドはアドレス指定された行を削除し、これらを置き換える入力テキストを受け入れます
行; 現在の行は、最後の行入力のアドレスに設定されます。 または、ある場合
最後の行が削除された後の行では、noneでした。 削除された行が元々あった場合
バッファの最後で、現在の行番号は新しいアドレスに設定されます。
最後の行; バッファに行が残っていない場合、現在の行番号はゼロに設定されます。
アドレス0はこのコマンドに有効です。 アドレス1が
指定。
削除 Command
シノプシス:
(。、。)NS
この d コマンドは、アドレス指定された行をバッファから削除します。 行のアドレス
最後に削除された行が現在の行番号になります。 行が削除された場合
元々バッファの最後にあった場合、現在の行番号はに設定されます。
新しい最後の行のアドレス。 バッファに行が残っていない場合は、現在の行番号
ゼロに設定する必要があります。
編集 Command
シノプシス:
e [file]
この e コマンドは、バッファの内容全体を削除してから、ファイルを読み込みます。
パス名で名前が付けられます file。 現在の行番号は、
バッファの最後の行。 パス名が指定されていない場合、現在記憶されているパス名(
いずれかを使用する必要があります( f 指図)。 読み取られたバイト数はに書き込まれます
標準出力( −s 次の形式でオプションが指定されました。
"%d \ n"、 <数 of バイト read>
名 file 以降のデフォルトパス名として使用できるように記憶しておく必要があります e,
E, r, w コマンド。 もしも file の代わりに 「!」、行の残りの部分はに取られるものとします
出力が読み取られるシェルコマンドラインである。 そのようなシェルコマンドラインは
現在として記憶 file。 すべてのマークは、完了時に破棄されるものとします。
成功した e 指図。 バッファ全体が最後に変更されたときからバッファが変更された場合
書面では、前述のように、ユーザーに警告する必要があります。
編集 無し チェック Command
シノプシス:
E [file]
この E コマンドは、のすべてのプロパティと制限を所有するものとします e それ以外のコマンド
編集者は、それ以降、バッファに変更が加えられたかどうかを確認してはなりません。
最後 w
ファイル名 Command
シノプシス:
f [file]
If file 与えられた、 f コマンドは、現在記憶されているパス名を次のように変更します。 file;
名前が変更されているかどうかに関係なく、現在(おそらく新しい)を書き込む必要があります
次の形式で標準出力へのパス名を記憶しました。
"%s \ n"、 <パス名>
現在の行番号は変更されません。
グローバル Command
シノプシス:
(1、$)g /RE/ command リスト
g コマンドの場合、最初のステップは、行を除くすべての行にマークを付けることです。
終了指定されたREに一致します。 次に、
ファイルの先頭からファイルの末尾まで、指定された command リスト のために実行されるものとします
現在の行番号がその行のアドレスに設定された、マークされた各行。 任意の行
によって変更された command リスト マークを付けないものとします。 いつ g コマンドが完了し、現在
行番号には、の最後のコマンドで割り当てられた値が必要です。 command リスト。 場合
一致する行がなかった場合、現在の行番号は変更されません。 独身者
コマンドまたはコマンドリストの最初のコマンドは、グローバルと同じ行に表示されます。
指図。 最後の行を除く複数行リストのすべての行は、
終了前; NS a, i, c コマンドと関連
入力は許可されます。 NS '。' 入力モードの終了は、次の場合は省略できます。
の最後の行 command リスト。 空っぽ command リスト と同等でなければならない p
使用 g, G, v, V, ! のコマンド command リスト 未定義の結果を生成します。
以外の文字またの代わりに使用できます区切る
そこの。 RE内では、RE区切り文字自体をリテラル文字として使用できます。
前に。
対話 グローバル Command
シノプシス:
(1、$)G /RE/
G コマンドの場合、最初のステップは、行を除くすべての行にマークを付けることです。
終了指定されたREに一致します。 次に、そのようなすべての行について、その行は
書かれている場合、現在の行番号はその行のアドレスに設定され、いずれかXNUMXつ
コマンド(XNUMXつ以外 a, c, i, g, G, v, V コマンド)を読み、
実行されました。 NS nullコマンドとして機能するものとします(
現在の行); NS '&' 最新のnull以外のコマンドの再実行を引き起こします
の現在の呼び出し内で実行 G。 コマンドの一部として入力されることに注意してください
の実行 G コマンドは、バッファ内のすべての行をアドレス指定して影響を与えることができます。 任意の行
コマンドによって変更されたものはマークされていません。 現在の行番号の最終値
正常に実行された最後のコマンドによって設定された値でなければなりません。 (最後のことに注意してください
正常に実行されたコマンドは G コマンドが失敗した場合、またはnullの場合はコマンド自体
コマンドが指定されています。)一致する行がなかった場合、現在の行番号は
変更されます。 NS G コマンドはSIGINTシグナルで終了できます。 以外の文字
またの代わりに使用できますREと
置換。 RE内では、RE区切り文字自体をリテラル文字として使用できます。
その前に。
カスタマーサービス Command
シノプシス:
h
この h コマンドは、理由を説明する短いメッセージを標準出力に書き込むものとします。
最新の 「?」 通知。 現在の行番号は変更されません。
ヘルプモード Command
シノプシス:
H
この H コマンドは原因となる ed ヘルプメッセージが表示されるモードに入るには( h コマンド)
以降のすべての標準出力に書き込まれるものとします 「?」 通知。 NS H command
このモードを交互にオンまたはオフにします。 最初はオフです。 ヘルプモードが
オンになっていると、 H コマンドは前の説明もします 「?」 通知があった場合
一。 現在の行番号は変更されません。
インセット Command
シノプシス:
(。)私
<클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. >
.
この i コマンドは、アドレス指定された行の前に指定されたテキストを挿入するものとします。 現在の行は
最後に挿入された行に設定するか、ない場合はアドレス指定された行に設定します。 このコマンド
とは異なります a 入力テキストの配置でのみコマンドを実行します。 アドレス0は
このコマンドに有効です。 アドレス1が指定されたかのように解釈されます。
加入 Command
シノプシス:
(。、。+ 1)j
この j コマンドは、適切なものを削除することにより、連続する行を結合するものとします
文字。 アドレスがXNUMXつだけ指定されている場合、このコマンドは何もしません。 行が
結合された場合、現在の行番号は結合された行のアドレスに設定されます。 それ以外は、
現在の行番号は変更されません。
Mark Hodder Command
シノプシス:
(。)kx
この k コマンドは、アドレス指定された行に名前を付けます。 x、アプリケーションはこれを行うものとします
ポータブル文字セットの小文字であることを確認してください。 住所・アドレス "'NS" その後、
この行を参照してください。 現在の行番号は変更されません。
リスト Command
シノプシス:
(。、。)l
この l コマンドは、アドレス指定された行を視覚的に明確に標準出力に書き込むものとします。
形。 POSIX.1‐2008の基本定義ボリュームにリストされている文字。 表 5-1,
エスケープ シーケンス と 関連する ('\\', '\NS', '\NS', '\NS', '\NS', '\t', '\ v') NS
対応するエスケープシーケンスとして記述されます。 NS '\ n' その表の該当はありません。
表にない印刷不可能な文字は、XNUMXつのXNUMX桁のXNUMX進数として書き込まれるものとします。
(前に文字)文字の各バイト(最も重要)
バイトファースト)。
長い線は折りたたまれ、折り畳みのポイントは次のように示されます。 前に
; 折り畳みが発生する長さは指定されていませんが、適切である必要があります
出力デバイス用。 各行の終わりには、 '$', '$' 文字
本文中は前書きで書かなければならない。 NS l コマンドはすることができます
以外のコマンドに追加 e, E, f, q, Q, r, wまたは !。 現在の行
番号は、最後に書き込まれた行のアドレスに設定されます。
移動 Command
シノプシス:
(。、。)NS住所
この m コマンドは、アドレス指定された行の後にアドレス指定された行を再配置するものとします。 住所.
アドレス0は次の場合に有効です。 住所 アドレス指定された行をに移動します
バッファの始まり。 アドレスがあればエラーになります 住所 の範囲内に入る
移動した行。 現在の行番号は、最後に移動した行のアドレスに設定されます。
数 Command
シノプシス:
(。、。)NS
この n コマンドは、各行の前にアドレス指定された行を標準出力に書き込みます。
その行番号と; 現在の行番号は、
書かれた最後の行。 NS n コマンドは、以外のコマンドに追加できます e, E, f, q, Q,
r, wまたは !.
印刷物 Command
シノプシス:
(。、。)NS
この p コマンドは、アドレス指定された行を標準出力に書き込みます。 現在の行番号
最後に書かれた行のアドレスに設定されます。 NS p コマンドは任意に追加できます
以外のコマンド e, E, f, q, Q, r, wまたは !.
プロンプト Command
シノプシス:
P
この P コマンドは原因となる ed プロンプトを表示するには((「*」) (また string、もし −p is
指定)以降のすべてのコマンド。 NS P または、コマンドはこのモードをオンにします
オンとオフ; それは最初にオンになります −p オプションが指定されています。 それ以外の場合はオフ。 NS
現在の行番号は変更されません。
やめます Command
シノプシス:
q
この q コマンドは原因となる ed 出る。 前回からバッファが変更された場合
バッファ全体が書き込まれた場合、前述のように、ユーザーに警告する必要があります。
やめます 無し チェック Command
シノプシス:
Q
この Q コマンドは原因となる ed で変更が加えられたかどうかを確認せずに終了する
最後からのバッファ w
読む Command
シノプシス:
($)r [file]
この r コマンドは、パス名で指定されたファイルを読み込みます。 file の後に追加します
アドレス指定された行。 いいえの場合 file 引数が与えられ、現在記憶されているパス名(ある場合)、
使用するものとします( e と f コマンド)。 現在記憶されているパス名は
記憶されているパス名がない場合を除いて変更されます。 アドレス0は次の場合に有効です。 r そしてしなければならない
バッファの先頭でファイルが読み取られるようにします。 読み取りが成功した場合、および
−s 指定されていない場合、読み取られたバイト数は、標準出力に書き込まれます。
次の形式:
"%d \ n"、 <数 of バイト read>
現在の行番号は、最後に読み込まれた行のアドレスに設定されます。 file is
と取り換える 「!」、行の残りの部分は、シェルコマンドラインと見なされます。
出力を読み取ります。 このようなシェルコマンドラインは、現在のコマンドラインとして記憶されません。
パス名。
代替 Command
シノプシス:
(。、。)NS/RE/置換/フラグ
この s コマンドは、指定されたREの出現について、アドレス指定された各行を検索し、
最初またはすべての(重複していない)一致した文字列を 置換; 湖
次の説明 g サフィックス。 置換が失敗した場合はエラーです
アドレス指定されたすべての行。 以外の文字また代わりに使用できます
NS REと交換を区切る。 RE内では、RE区切り文字自体
前に文字が付いている場合は、リテラル文字として使用できます。 。 現在の行
置換が発生した最後の行のアドレスに設定されます。
NS (('&')に表示される 置換 文字列照合に置き換えられます
現在の回線のRE。 の特別な意味 '&' この文脈では抑制できます
その前に。 より一般的な機能として、キャラクター '\ n'ここで、 n
は数字であり、対応する後方参照と一致するテキストに置き換えられます。
表現。 対応する後方参照式が一致しない場合、
文字 '\ n' 空の文字列に置き換えられます。 キャラクターが '%' だけです
の文字 置換 置換 最新の代替コマンドで使用
として使用されるものとします 置換 現在の代替コマンドで; なかった場合
以前の代替コマンド、の使用 '%' このようにするとエラーになります。 NS '%'
それが複数の置換文字列にある場合、その特別な意味を失うものとします
文字または前に。 それぞれについてスキャン中に検出されました
置換 最初から最後まで、次の文字はその特別な意味を失います
(もしあれば)。 以外の文字にどのような特別な意味が与えられるかは特定されていません
、 '&', '%'、または数字。
行を分割するには、 それに。 アプリケーションはそれを保証するものとします
脱出の中に 置換 その前に。 そのような
の一部として置換を行うことはできません g or v command リスト。 現在の行番号
置換が実行される最後の行のアドレスに設定されます。 いいえの場合
置換が実行された場合、現在の行番号は変更されません。 行が分割されている場合、
置換は、の新しい行のそれぞれで実行されたと見なされるものとします。
新しい現在の行番号を決定する目的。 代替は考慮されなければならない
置換文字列がその文字列と同一であっても実行されている
置き換えます。
アプリケーションは、 フラグ ゼロ以上である:
カウント の代わりに カウントアドレス指定された各行で見つかったREのみの発生。
g 単にではなく、REの重複しないすべてのインスタンスをグローバルに置き換えます
最初のXNUMXつ。 両方の場合 g と カウント 指定されている場合、結果は指定されていません。
l 置換が行われた最後の行を標準出力に書き込みます。 この線
に指定された形式で書かれなければならない l
n 置換が行われた最後の行を標準出力に書き込みます。 この線
に指定された形式で書かれなければならない n
p 置換が行われた最後の行を標準出力に書き込みます。 この線
に指定された形式で書かれなければならない p
コピー Command
シノプシス:
(。、。)NS住所
この t コマンドは、 m アドレス指定されたのコピーを除いて、コマンド
行はアドレスの後に配置する必要があります 住所 (0にすることができます); 現在の行番号
追加された最後の行のアドレスに設定されます。
アンドゥ Command
シノプシス:
u
この u コマンドは、何かを変更した最新のコマンドの効果を無効にします。
バッファ内、つまり最新のもの a, c, d, g, i, j, m, r, s, t, u, v, Gまたは V
によってバッファに加えられたすべての変更 g, G, vまたは V グローバルコマンドは、次のように元に戻す必要があります。
単一の変更; グローバルコマンドによって変更が行われなかった場合( g/NS/p) u
コマンドは効果がありません。 現在の行番号は、それが持っていた値に設定されます。
元に戻すコマンドが開始される直前。
グローバル 不一致 Command
シノプシス:
(1、$)v/RE/ command リスト
このコマンドは、グローバルコマンドと同等です。 g ただし、
最初のステップでマークされているのは、終端を除く線が
REと一致しません。
対話 グローバル 一致しません Command
シノプシス:
(1、$)V/RE/
このコマンドは、インタラクティブグローバルコマンドと同等です。 G 線を除いて
最初のステップでマークされているものは、
終了REと一致しません。
書きます Command
シノプシス:
(1、$)w [file]
この w コマンドは、アドレス指定された行をパス名で指定されたファイルに書き込みます。 file.
コマンドは、ファイルが存在しない場合はファイルを作成するか、ファイルの内容を置き換えます。
既存のファイル。 現在記憶されているパス名は、存在しない限り変更されません。
記憶されているパス名はありません。 パス名が指定されていない場合、現在記憶されているパス名(
いずれかを使用する必要があります( e と f コマンド); 現在の行番号は変更されません。
コマンドが成功した場合、書き込まれるバイト数は標準に書き込まれます。
出力、ただし −s 次の形式でオプションが指定されました。
"%d \ n"、 <数 of バイト 書かれた>
If file 〜で始まる 「!」、行の残りの部分はシェルコマンドラインと見なされます
その標準入力はアドレス指定された行になります。 そのようなシェルコマンドラインは
現在のパス名として記憶されています。 このwriteコマンドの使用法 「!」 してはならない
「最後」と見なされます w 前に説明したように、バッファ全体を書き込んだコマンド '';
したがって、これだけでは、試みた場合のユーザーへの警告を妨げることはありません。
を介してエディタバッファを破棄します e or q コマンド。
LINE 数 Command
シノプシス:
($)=
アドレス指定された行の行番号は、次の標準出力に書き込まれます。
フォーマット:
"%d \ n"、 <ライン 数>
現在の行番号は、このコマンドによって変更されません。
シェル(Shell) エスケープ Command
シノプシス:
! command
後の行の残りの部分 「!」 コマンドインタプリタに送信され、
シェルコマンドラインとして解釈されます。 そのシェルコマンドラインのテキスト内で、
エスケープされていない文字 '%' 記憶されているパス名に置き換えられます。 もし 「!」 登場する
コマンドの最初の文字として、前のテキストに置き換えられます
を介して実行されるシェルコマンド 「!」。 したがって、 「!!」 前を繰り返します! command。 もしあれば
の交換 '%' or 「!」 実行された場合、変更された行はに書き込まれます。
前の標準出力 command 実行されます。 NS ! コマンドは次のように記述します。
"!\NS"
完了時に標準出力に −s オプションが指定されています。 現在の行
番号は変更されません。
ヌル Command
シノプシス:
(。+ 1)
行にアドレスだけがあると、アドレス指定された行が書き込まれます。 NS XNUMX人
と同等でなければならない 「+ 1p」。 現在の行番号は、
書かれた行。
EXIT ステータス
次の終了値が返されます。
0ファイルまたはコマンドエラーなしで正常に完了しました。
> 0エラーが発生しました。
結果 OF エラー
入力スクリプトでエラーが発生した場合、またはエラーが検出された場合
ファイルに存在する(ない)データの結果、または次のような外部条件による
読み取りまたは書き込みエラー:
*標準入力が端末デバイスファイルの場合、すべての入力がフラッシュされ、新しい入力がフラッシュされます。
コマンド読み取り。
*標準入力が通常のファイルの場合、 ed ゼロ以外の出口で終了するものとします
状態。
この フォロー中 セクション 有益です。
お申込み USAGE
デフォルトのエラーメッセージは非常に簡潔であるため、慎重なスクリプト
作家は始めます ed を使用した入力コマンド H コマンド、エラーが発生した場合に
原因に関する少なくともいくつかの手がかりが利用可能になります。
この規格の以前のバージョンでは、廃止されました - オプションが説明されました。 これはありません
より長く指定されます。 アプリケーションはを使用する必要があります −s オプション。 使用する - として file 今オペランド
不特定の結果を生成します。 これにより、実装は引き続きサポートを行うことができます。
以前に必要な動作。
例
なし。
理論的根拠
このユーティリティの最初の説明は、SVIDから採用されました。 それはいくつかが含まれています
バージョン7またはBSDから派生したシステムにはない機能。 間の違いのいくつか
POSIXとBSD ed ユーティリティには次のものが含まれますが、これらに限定される必要はありません。
* BSD - オプションは抑制しません 「!」 後のプロンプト !
* BSDは、の特別な意味をサポートしていません '%' と 「!」 内の文字 !
* BSDはサポートしていません アドレス ';' と 「、」.
* BSDでは、コマンドとサフィックスのペアを使用できます pp, ll、など、これでは指定されていません
POSIX.1‐2008のボリューム。
* BSDはサポートしていません 「!」 のキャラクター部分 e, rまたは w コマンド。
*失敗しました g BSDのコマンドは、行番号があれば、検索された最後の行に設定します。
一致するものはありません。
* BSDはデフォルトではありません command リスト から p
* BSDはサポートしていません G, h, H, nまたは V コマンド。
* BSDでは、挿入されたテキストがない場合、insertコマンドは現在の行を次のように変更します。
参照行-1; つまり、指定された行の前の行です。
* BSDでは、 join 単一のアドレスのみを使用するコマンドは、現在の行をそのアドレスに変更します
住所。
* BSDはサポートしていません P 指図; さらに、BSDではそれはと同義です p
* BSDはサポートしていません 取り消す コマンドの j, m, r, sまたは t.
*バージョン7 ed command W、およびBSD ed コマンド W, wq, z に存在しません
POSIX.1‐2008のこのボリューム。
この −s 削除された機能を許可するオプションが追加されました - ある方法でオプション
ユーティリティ構文ガイドラインと互換性があります。
初期の提案では、歴史を説明する制限{ED_FILE_MAX}がありました
いくつかの制限 ed 大きなファイルの処理におけるユーティリティ。 これらのいくつかは持っていた
100000バイトを超えるファイルの問題。 多くのことを促したのはこの制限でした
を含めたいという願望 split POSIX.1‐2008のこのボリュームのコマンド。 この制限があったので
削除されたこのPOSIX.1‐2008のボリュームでは、実装でファイルサイズを文書化する必要があります
によって課せられる制限 ed 適合文書で。 制限{ED_LINE_MAX}も
NS; したがって、グローバル制限{LINE_MAX}が入力ラインと出力ラインに使用されます。
の方法 l 印刷できない文字を書き込むコマンドは、回避するために変更されました
歴史的なバックスペースオーバーストライク方式。 ビデオディスプレイ端末では、オーバーストライクは
ほとんどの端末は単に重ね打ちされた文字を置き換えるだけなので、あいまいです。 l 形式でアーカイブしたプロジェクトを保存します.
内容を明確に理解するという本来の目的には役立たない
ライン。 歴史的-エスケープもあいまいでした。 (文字列 「a \ 0011」 可能性
これらのXNUMX文字を含む行またはXNUMX文字を含む行を表す
'A'、バイナリ値が1のバイト、および1。)ここで必要な形式では、
行に表示されると書かれています 「\\」 そのため、出力は本当に明確です。 NS
線の端をマークする方法はから採用されました ex エディターであり、
で終わる行文字; NS '$' 本物のようにすべての行に配置されます '$' at
行の終わりを誤解することはできません。
この標準の以前のバージョンでは、XNUMXバイト以外の実装が可能でした
ビットですが、これはこのバージョンで変更されています。
NULの記述方法の説明が削除されました。 NUL文字をテキストにすることはできません
ファイル、およびPOSIX.1‐2008のこのボリュームは、次の場合の動作を指示するべきではありません。
未定義の誤った入力。
他のいくつかの編集ユーティリティとは異なり、 E, e, R, r
コマンドはパターンではありません。
初期の提案では、 −p オプションは、標準入力が関連付けられている場合にのみ機能しました
端末デバイスを使用します。 これは、過去の実装に準拠するように変更されました。
これにより、アプリケーションがユーザーと ed ユーティリティ。
を使用する置換コマンドの形式 n 一部の歴史では接尾辞が制限されていました
ドキュメント(これが「逆参照」として誤って説明されている場合)。 この制限
エディターが{LINE_MAX}の行を処理する理由がないため、省略されています。
長さにはこの制限が必要です。 コマンド s / x / X / 2047 代用できるはずです
2047回目の発生 'バツ' 一列に。
印刷接尾辞付きの印刷コマンドの使用( pn, lp、など)が作成されました
BSDベースのシステムではこれが許可されているのに対し、System Vでは許可されていないため、指定されていません。
一部のBSDベースのシステムは、ファイルの終わりを受信するとすぐに終了します。
ファイルが削除されました。 POSIX.1‐2008のこのボリュームは、 q コマンドイン
この場合、そのような動作は許可されません。
一部の履歴実装では、コマンドエラーが発生した場合でも、終了ステータスがゼロになりました。
発生した; これは、POSIX.1‐2008のこのボリュームでは許可されていません。
一部の歴史的な実装には、単一を許可するバグが含まれていましたすることが
として入力モードに入った。 これは許可されていません ed
入力モードで文字をエスケープする説明がないため。
文字は、入力されたとおりにバッファに入力されます。 の典型的な方法
シングルを入力するその前に別の文字を付けてから、
その文字を削除するための置換コマンド。
過去のオペレーティングシステム端末の一部のバージョンの一部のモードでは困難です
ファイルの終わりの状態と端末の切断を区別するためのドライバー。
POSIX.1‐2008では、XNUMXつの状況を区別するための実装は必要ありません。
これにより、 ed 歴史的なプラットフォームでのユーティリティ
適合します。 実装では、可能であればXNUMXつを区別し、
端末の切断時に適切なアクションを実行します。
歴史的には、 ed のゼロアドレスを受け入れました a と r テキストを挿入するためのコマンド
編集バッファの開始時。 バッファが空の場合、コマンド .= ゼロを返しました。
POSIX.1‐2008は、歴史的慣行への適合を要求します。
との一貫性のために a と r コマンドとより良いユーザー機能、 i と c
コマンドは0のアドレスも受け入れる必要があります。その場合は0です。i 1として扱われますi 同様に
c
次のすべてが有効なアドレスです。
+++現在の行のXNUMX行後。
/パターン/ −次のパターン発生のXNUMX行前。
−2現在の行のXNUMX行前。
3 −−−− 2 XNUMX行目(中間の負のアドレスに注意してください)。
1 2 3行目。
アドレスを取得するコマンドには、任意の数のアドレスを指定できます。 例えば、
「1,2,3,4,5p」 4行目が有効なアドレスの最大数であるため、5行目とXNUMX行目を出力します。
によって受け入れられた 印刷 指図。 これは、 デリミタ、
ユーザーがファイル内の順序付けられたパターンに基づいてコマンドを作成できるようにします。 たとえば、
command "3; / foo /; + 2p" パターンを含む3行目以降の最初の行を表示します
foo、および次のXNUMX行。 アドレスに注意してください 「3;」 まだ前に評価する必要があります
の検索元が 「/ foo /」 コマンドはこれに依存します。
歴史的には、 ed 上で説明したように、許可されていないアドレスチェーンは
またセパレーター; 例えば、 「、、、」 or ";;;" エラーと見なされました。
アドレス指定の一貫性を保つために、この制限は削除されています。 次の表
現在可能な住所フォームの一部をリストします。
┌────────┬───────┬───────┬────────────┬─────────── ────────────┐
│住所 │ アドレス1 │ アドレス2 │ 状況 │ コメント │
├────────┼───────┼───────┼────────────┼─────────── ────────────┤
│7、│7│7│歴史的││
│7,5、│5│5│歴史的││
│7,5,9│5│9│歴史的││
│7,9│7│9│歴史的││
│7、+│7│8│歴史的││
│、│1│$│歴史的││
│、7│1│7│拡張機能││
│、、│$│$│拡張機能││
│、; │$│$│拡張機能││
│7; │7│7│歴史的││
│7; 5; │5│5│歴史的││
│7; 5;9│5│9│歴史的││
│7;5,9│5│9│歴史的││
│7; $;4│$│4│履歴│有効ですが、誤りです。 │
│7;9│7│9│歴史的││
│7; +│7│8│歴史的││
│; │。 │$│歴史的││
│;7│。 │7│拡張機能││
│;; │$│$│拡張機能││
│;、│$│$│拡張機能││
└────────┴───────┴───────┴────────────┴─────────── ────────────┘
歴史的には、 ed 受け入れた '^' 住所としての文字、この場合は同一でした
にキャラクター。 POSIX.1‐2008は、この動作を要求または禁止していません。
未来 道順
なし。
onworks.netサービスを使用してオンラインでedposixを使用する