LinuxでSedを使用する方法

sed ストリームエディタの略です。 Linux用のコマンドラインベースのエディタです。 sedの一般的な使用法は、Linuxの自動化スクリプトの一部としてファイルを編集することです。通常のエディターはアクティブなユーザー入力を必要とし、エディター画面の外でファイルを編集することはできません。 Sedは、コマンドラインから検索と置換を行うために最も一般的に使用されます。

このタイプのテキストエディタは、非インタラクティブテキストエディタとして分類することもできます。

Sedを使用してファイルを編集するためのいくつかの一般的なオプションを見てみましょう。例として次のファイルを取り上げます。

$:cattest.txt速い茶色の犬が怠惰な猫を飛び越えました。 Linuxオペレーティングシステム。私の家の近くの森には猫とオオカミがいます。 

検索と置換

ファイル内の文字列を検索して別の文字列に置き換えるには、次のコマンドを実行します。

sed -i "s / cat / fox / g" test.txt

ここでは、 -私 flagは、sedに変更をファイルに書き込むように指示します。このフラグがないと、 sed 変更された文字列を含むファイルを表示するだけです。

引用では、私たちは持っています s / cat / fox / g。 The s の検索および置換コマンド用です sed。次に、検索する文字列があります。 。次に、それを置き換える文字列、つまり、 。最後に、オプションがあります g、指示する sed ファイルのすべての行のすべてのオカレンスを置き換えます。なし g、sedは最初の出現のみを置き換えます すべての行に。

正規表現もここで使用できます。

sed -i "s / f [a-z] * \。/cat \。/g"

入れる

文字列が一致する行の前にテキストを挿入するには、次を使用します。

sed -i "/ cat / i Start:" test.txt

ここ、 検索された文字列であり、 始める: 検索された文字列が見つかった行の前に入力する文字列です。

同様に、行の後にテキストを挿入するには、次を使用します。

sed -i "/ fox / aEnd。" test.txt

消去

部分文字列を含む行を削除するには、次を使用します。

sed -i "/ Linux / d" test.txt

行番号のある行を削除するには、たとえば。最初の行は、次を使用します。

sed -i '1d' test.txt

複数の機能を組み合わせる

複数の機能を組み合わせるには、例えば。 1つのコマンドで、検索と置換、削除、 -e フラグを使用できます。

sed -i -e "s / fox / cat / g" -e '2d' test.txt

? 乾杯!