ストリーム エディター (SED): 基本

WBOY
リリース: 2024-03-20 15:11:22
転載
427 人が閲覧しました

ストリーム エディター (SED): 基本

#SED (ストリーム エディターとも呼ばれる) は、非常に便利なツールです。これは、特定の単語またはパターンを検索し、その単語またはパターンに対して何らかの操作を実行する、つまり変換するために使用されます。 Windows では、SED は検索と置換機能としても知られています。 SED は Ubuntu にネイティブで付属しているため、インストールする必要はなく、すぐに使用できます。このチュートリアルでは、SED またはストリーム エディターの使用方法を説明します。

「S」コマンド

SED またはストリーム エディターで最も重要なコマンドは、「s」コマンドです。 「s」は代替品を表します。構文は次のとおりです:

/regexp/replacement/flags

それでは、例として「file.txt」というファイルを使用してみましょう。 「file.txt」をトレースすると次のようになります:


「S」コマンドがどのように機能するかを説明するために例を使用してみましょう:

SED「S/First/Moon/I」file.txt>moon.txt

このような式が与えられた場合、それは次のことを意味します:

    • S—これは代替の略です。
    • first - 「file.txt」という名前のファイル内で検索する単語。
    • 「月」 - 「最初」は「月」に置き換えられます。
    • は無視の略です。最初はこの部分を無視しましょう。
    • File.txt - SED がパターンまたは単語を検索するファイル。この場合、「最初」という単語は次のようになります:
    • ファイル .txt で検索されました

    • Moon.txt – 「first」という単語を「Moon」に置き換えると、「moon.txt」の下に保存されます。

SED では、最初のインスタンスでのみ、単語「first」が「moon」に置き換えられます (これは、「first」が複数回出現した場合、最初の 1 回のみが置き換えられることを意味します)。このコマンドは、「file.txt」という名前のファイルを検索し、置換が完了すると、結果が「moon.txt」ファイルに保存されます。

これは次のようになります:


必要な場合は「/」を忘れずに入力してください。 「/」を省略した場合、SED はコマンドを受け付けません。

ここまでは「初めて」を「出会い」という言葉に置き換えただけです。ここで、3 行目の「line」という単語 (複数回、具体的には 4 回出現します) を「Angel」という単語に置き換えたいとします。

具体的に 3 行目をターゲットにするにはどうすればよいでしょうか?次のコマンドを使用します:

SED‘3S/Line/Angel/I’file.txt>angel.txt

それで、ここで一体何が起こったのでしょうか? 「3」は行番号を指定します。それで3行目になります。次に、「file.txt」という名前のファイル内の「angel.txt」を「line」に置き換え、変換されたファイルを「angel.txt」として保存します。


行「3」と「4」を置換または変換したい場合はどうすればよいでしょうか?

Sed‘3,4s/line/Angel/I’file.txt>angel2.txt


前の例では、無視を表すために「i」フラグを使用したことに注意してください。ここで、「g」フラグを使用してグローバルを表します。

例を使用して、「s」コマンドがどのように機能するかを説明します。

sed’s/line/sun/g ‘file.txt>sun.txt

このような式が与えられた場合、それは次のことを意味します:

G はグローバルを表します。最初の例で「i」フラグを使用したとき、置換は 1 つだけだったということを思い出してください。 global に「g」を追加したため、どこにでも代替手段があることを意味します。つまり、最初の行、2 行目、3 行目、最後の行という代わりに、最初の太陽、2 番目の太陽、3 番目の太陽、そして最後の太陽となります。ファイル全体の (あらゆる場所の) 単語の行が「sun」という単語に置き換えられます。


さて、その行に含まれる単語に基づいて行を選択したい場合はどうすればよいでしょうか? 「file.txt」の最後の行に「last」という単語が含まれていることがわかります。ここで、「これが最後の行です」としたいとします。これが最後の言葉だ」 「これが最後の幽霊だ。これが最後の文です。」

次のように書きます:

Sed‘/last/S/line/host/’file.txt>.ghost.txt

ここでの「last」は、SED に「last」という単語を含む行を検索し、その行内の単語「line」を「ghost」に置き換えるよう指示します。


さて、逆のことをしたいとします。 「last」という単語を含まないすべての行で、「line」という単語を「host」に変更したいとします。次のように書きましょう:

「/last/!」を選択してください。 S/line/ghost/'file.txt>.ghost 2.txt

ここでわかるように、最後の行 (「last」という単語が含まれる) を除くすべての行で、「ghost」という単語が「line」という単語に置き換えられています。


行番号を使用してこれを実現することもできます:

セド「3,4!」 S/行/夜/I'file.txt>night.txt

この場合、3 行目と 4 行目は省略されていますが、1 行おきに「line」という単語が「night」という単語に置き換えられています。

複数のコマンド

それでは、複数のコマンドがある場合はどうなるでしょうか?時間と労力を節約するために、一度に 1 つずつ実行するのと、一度にすべて実行するのとではどちらが良いでしょうか?

「最初」という単語を「昼」に、「二番目」という単語を「夜」に、「休憩」という単語を「幽霊」に変更したい場合はどうすればよいでしょうか?これにはセミコロンを使用します。最後にセミコロンを付けるのを忘れないでください。

「i」フラグや「ignore」フラグを置く必要はありませんが、変換フレーズの後にスラッシュ (/) を置く必要があることに注意してください。

それでは、例を使って検証してみましょう:

sed の/最初/日/;s/2 番目/夜/;s/3 番目/ghost/;s/last/ghost/;'file.txt>combination.txt

#########結論は#########

ストリーム エディタ (SED) は、単語またはパターンを選択して変換する方法であり、事実上、Windows の「検索」および「置換」機能に相当するコマンド ラインです。 SED コマンドは非常に複雑になる場合がありますが、少なくとも基本を知っていれば準備は完了です。 SED は実際には非常に強力なツールです。 1 つのチュートリアルですべてをカバーすることはできませんが、SED の基本については説明します。基本的に、「s」コマンドを使用して特定の単語を変換する方法を学びました。「s」は置換単語を表します。単語を別の単語に置き換えたり、置換する行を選択したり、あるいはそれを否定したりすることもできます。いずれにせよ、これは SED に関して最も簡単な部分です。 楽しくコーディングしてください!

以上がストリーム エディター (SED): 基本の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:mryunwei.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート