通常の状況では、sed は処理対象の行をパターン空間に読み取り、スクリプト内のコマンドはスクリプトが実行されるまでその行を次々に処理し、その後行が出力されてパターン空間は空のままになります。次に、前の操作を繰り返し、ファイルが完全に処理されるまでファイル内の新しい行が読み取られます。ただし、ユーザーがスクリプト内の特定のコマンドを特定の条件で実行したい場合や、パターン空間を次の処理のために保持しておきたい場合など、さまざまな理由により、sed がファイルの処理時に指示に従わない場合があります。通常のプロセス。現時点では、sed はユーザーの要件を満たすためにいくつかの高度なコマンドをセットアップしています。 sed の高度なコマンドを学習したい場合は、まず次の 2 つのバッファ領域を理解する必要があります。
1. パターン空間の定義: パターン空間は、sed が入力端から読み取った内容を保存するバッファー領域です。
2. ホールド スペースの定義: ホールド スペースは、パターン スペース データを処理するときにデータを一時的にキャッシュするために使用されます。
g: ホールドスペースの内容をパターンスペースにコピーし、元のパターンスペースの内容をクリアします
G: ホールド スペースのコンテンツをパターン スペースに追加します\n
h: パターンスペースの内容をホールドスペースにコピーし、元のホールドスペースの内容はクリアされます
H: スペースを保持するためにパターン スペースにコンテンツを追加します\n
x: パターンスペースとホールドスペースの内容を交換します
リーリー
次のコマンドを実行します:リーリー
上記の実行プロセスを徐々に理解していきましょう1. 次の 3 つのコマンドを分析してみましょう:
以上が総まとめ:Linux sedの複数行処理を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。