ホームページ システムチュートリアル Linux 総まとめ:Linux sedの複数行処理を詳しく解説

総まとめ:Linux sedの複数行処理を詳しく解説

Jan 05, 2024 pm 04:11 PM
sed 複数行の処理

通常の状況では、sed は処理対象の行をパターン空間に読み取り、スクリプト内のコマンドはスクリプトが実行されるまでその行を次々に処理し、その後行が出力されてパターン空間は空のままになります。次に、前の操作を繰り返し、ファイルが完全に処理されるまでファイル内の新しい行が読み取られます。ただし、ユーザーがスクリプト内の特定のコマンドを特定の条件で実行したい場合や、パターン空間を次の処理のために保持しておきたい場合など、さまざまな理由により、sed がファイルの処理時に指示に従わない場合があります。通常のプロセス。現時点では、sed はユーザーの要件を満たすためにいくつかの高度なコマンドをセットアップしています。 sed の高度なコマンドを学習したい場合は、まず次の 2 つのバッファ領域を理解する必要があります。

1. パターン空間の定義: パターン空間は、sed が入力端から読み取った内容を保存するバッファー領域です。

2. ホールド スペースの定義: ホールド スペースは、パターン スペース データを処理するときにデータを一時的にキャッシュするために使用されます。

コマンド パラメータもいくつかあります:

g: ホールドスペースの内容をパターンスペースにコピーし、元のパターンスペースの内容をクリアします

G: ホールド スペースのコンテンツをパターン スペースに追加します\n
h: パターンスペースの内容をホールドスペースにコピーし、元のホールドスペースの内容はクリアされます
H: スペースを保持するためにパターン スペースにコンテンツを追加します\n
x: パターンスペースとホールドスペースの内容を交換します

たとえば、ファイルの内容を逆にしたい場合、ファイルは次のようになります:

リーリー

次のコマンドを実行します:

リーリー

上記の実行プロセスを徐々に理解していきましょう

1. 次の 3 つのコマンドを分析してみましょう:

    2,$G: Gコマンドを2行目から最終行まで実行します
  • h: hコマンドを実行
  • $!d: 最後の行を除くすべての行を削除します
2. 具体的な操作

    最初の行までスキャン
    1. パターン スペースに 1 行を挿入します。この時点ではパターン スペースはまだ 1 行です。
    2. h コマンドを直接実行すると、この時点での一時記憶領域は 1 行になります。
    3. d コマンドを実行して、パターン スペース内のデータを 1 行だけ削除します。削除後のパターン スペースは空になります。
    2行目までスキャン
  1. パターンスペースに2行を配置します
    1. G コマンドを実行して、パターン スペースの 2 行の後ろに一時記憶スペースの 1 行を追加します。このとき、パターン スペースは 2 行です\n1-line;
    2. h コマンドを実行すると、一時記憶領域の内容は 2 行\n1 行;
    3. dコマンドを実行するとパターンスペースがクリアされます
    3行目までスキャン
  2. パターンスペースに3行を入れます、
    1. G コマンドを実行して、パターン スペースの 3 行の後ろに一時スペースの 2 行\n1 行を追加します。このとき、パターン スペースは 3 行\n2 行\になりますn1 行;
    2. h コマンドを実行すると、一時記憶領域の内容は 3 行\n2 行\n1 行;
    3. $!d を実行しないでください;
    直接出力 3行\n2行\n1行
  3. もちろん、コマンド sed '1!G;h;$!d' tmp にもこの効果があります。

以上が総まとめ:Linux sedの複数行処理を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SEDコマンドを使用したテキスト操作のマスター SEDコマンドを使用したテキスト操作のマスター Mar 16, 2025 am 09:48 AM

Linuxコマンドラインインターフェイスは、豊富なテキスト処理ツールを提供します。最も強力なツールの1つはSEDコマンドです。 SEDは、テキストファイルとストリームの複雑な処理を可能にする多機能ツールであるStream Editorの略語です。 SEDとは何ですか? SEDは、パイプライン入力またはテキストファイルで動作する非対話的なテキストエディターです。ディレクティブを提供することにより、ファイルまたはストリームでテキストを変更および処理することができます。 SEDの最も一般的なユースケースには、テキストの選択、テキストの交換、元のファイルの変更、テキストへの行の追加、またはテキストから行の削除が含まれます。 Bashおよびその他のコマンドラインシェルのコマンドラインから使用できます。 SEDコマンド構文 sed

Linuxでファイルとディレクトリを数える方法:初心者のガイド Linuxでファイルとディレクトリを数える方法:初心者のガイド Mar 19, 2025 am 10:48 AM

Linuxでファイルとフォルダーを効率的にカウントする:包括的なガイド Linuxでファイルやディレクトリを迅速にカウントする方法を知ることは、システム管理者や大規模なデータセットを管理している人にとっては重要です。このガイドは、単純なコマンド-Lを使用して示しています

Linuxの複数のグループにユーザーを追加する方法 Linuxの複数のグループにユーザーを追加する方法 Mar 18, 2025 am 11:44 AM

Linux/UNIXシステム管理には、ユーザーアカウントとグループメンバーシップを効率的に管理することが重要です。 これにより、適切なリソースとデータアクセス制御が保証されます。 このチュートリアルでは、LinuxおよびUNIXシステムの複数のグループにユーザーを追加する方法を詳しく説明しています。 私たちは

コマンドラインからインストールされているすべてのLinuxカーネルをリストまたは確認する方法 コマンドラインからインストールされているすべてのLinuxカーネルをリストまたは確認する方法 Mar 23, 2025 am 10:43 AM

Linuxカーネルは、GNU/Linuxオペレーティングシステムのコアコンポーネントです。 1991年にLinus Torvaldsによって開発されたこのため、無料のオープンソース、モノリシック、モジュール式、マルチタスクUnixのようなカーネルです。 Linuxでは、歌に複数のカーネルをインストールすることが可能です

LinuxでLeviathanファイルを見つける LinuxでLeviathanファイルを見つける Mar 13, 2025 pm 12:11 PM

導入 コマンドラインがしばしばナビゲートするコンパスであるLinuxの領域では、ディスクスペースの効率的な管理が非常に重要です。個人的なプロジェクトを航海しているのか、船を操縦しているのか

Ubuntu LinuxでIndian Rupeeシンボルを入力する方法 Ubuntu LinuxでIndian Rupeeシンボルを入力する方法 Mar 22, 2025 am 10:39 AM

この簡単なガイドでは、Linuxオペレーティングシステムでインドルピーシンボルを入力する方法について説明します。先日、Word文書に「Indian Rupee Symbol(£)」を入力したかったのです。私のキーボードにはルピーシンボルがありますが、入力する方法がわかりません。後

Linuxカーネル6.14 RC6がリリースされました Linuxカーネル6.14 RC6がリリースされました Mar 24, 2025 am 10:21 AM

Linus Torvaldsは、Linux Kernel 6.14リリース候補6(RC6)をリリースし、重要な問題を報告せず、リリースを順調に進めています。このアップデートで最も注目すべき変更は、AMDマイクロコード署名の問題に対応していますが、残りの更新は

Linuxの8つの最高のSSHクライアント Linuxの8つの最高のSSHクライアント Mar 15, 2025 am 11:06 AM

Linuxシステムに8つの最高のSSHクライアントを推奨しました SSH(Secure Shell Protocol)は、不安定なネットワークでネットワークサービスを安全に実行するために使用される暗号化されたネットワークプロトコルです。これは、最新のサーバー管理の重要な部分であり、システムへの安全なリモートアクセスを提供します。 SSHクライアント(SSHプロトコルを利用するアプリケーション)は、システム管理者、開発者、ITプロフェッショナルにとって不可欠なツールです。 Linuxの世界ではリモートサーバー管理が一般的であり、適切なSSHクライアントを選択することが重要です。この記事では、Linuxの8つの最高のSSHクライアントについて説明します。 選択基準 Linuxに最適なSSHクライアントを選択する場合、次の要因を考慮する必要があります。 パフォーマンス:SSHクライアントの速度と効率

See all articles