GNU/Linux >> Linux の 問題 >  >> Linux

Linuxユーザー向けの20Sed(Stream Editor)コマンドの例

Sedコマンドまたはストリームエディタ Linux/Unixシステムが提供する非常に強力なユーティリティです。主にテキスト置換に使用されます 、検索して置換しますが、挿入などの他のテキスト操作も実行できます 、削除検索 SEDを使用すると、実際にファイルを開かなくても、完全なファイルを編集できます。 Sedは正規表現の使用もサポートしているため、sedはさらに強力なテスト操作ツールになります。 。

この記事では、いくつかの例を参考にして、SEDコマンドの使用方法を学習します。 sedコマンドを使用するための基本的な構文は次のとおりです。

sedOPTIONS…[スクリプト][入力ファイル…]

それでは、いくつかの例を見てみましょう。

例:1)ファイルのテキストの一部を表示する

sedを使用すると、ファイル全体を表示するのではなく、ファイルの一部のみを表示できます。ファイルの一部の行を表示するには、次のコマンドを使用します

[[email protected] ~]$ sed -n 22,29p testfile.txt

ここで、オプション「n」はファイル全体の印刷を抑制し、オプション「p」は22から29までの行行のみを印刷します。

例:2)一部の行を除くすべてを表示する

一部を除くファイルのすべてのコンテンツを表示するには、次のコマンドを使用します。

[[email protected] ~]$ sed 22,29d testfile.txt

オプション「d」は、上記の行を出力から削除します。

例:3)N行目から3行ごとに表示

行番号2またはその他の行から始まる3行ごとのコンテンツを表示するには、次のコマンドを使用します

[[email protected] ~]$ sed -n '2~3p' file.txt

例:4)sedコマンドを使用して行を削除する

ファイルからsedを含む行を削除するには、次のコマンドを使用します。

[[email protected] ~]$ sed Nd testfile.txt

ここで、「N」は行番号であり、オプション「d」は指定された行番号を削除します。ファイルの最後の行を削除するには、

を使用します
[[email protected] ~]$ sed $d testfile.txt

例:5)行の範囲を削除する

ファイルから行の範囲を削除するには、

を実行します。
[[email protected] ~]$ sed '29,34d' testfile.txt

これにより、testfile.txtファイルから29行目から34行目が削除されます。

例:6)上記以外の行を削除する

上記の行以外の行をファイルから削除するには、「!」を使用します

[[email protected] ~]$ sed '29,34!d' testfile.txt

ここでは、「!」オプションが使用されていないため、条件が逆になります。つまり、記載されている行は削除されません。 29〜34以外のすべての行は、ファイルtestfile.txtから削除されます。

例:7)空白行/スペースの追加

空白以外のすべての行の後に空白行を追加するには、オプション「G」を使用します

[[email protected] ~]$ sed G testfile.txt

例:8)sedを使用して文字列を検索および置換する

ファイルから文字列を検索して置き換えるには、次の例を使用します

[[email protected] ~]$ sed 's/danger/safety/' testfile.txt

ここで、オプション「s」は「danger」という単語を検索し、最初に出現する場合にのみ、すべての行で「safety」に置き換えます。

例:9)sedを使用してファイル全体から文字列を検索および置換します

ファイルから単語を完全に置き換えるには、オプション「g」を「s」に置き換えます

[[email protected] ~]$ sed 's/danger/safety/g' testfile.txt

例:10)文字列パターンのn番目のオカレンスを置き換えます

ファイルからn番目に出現する文字列を置き換えることもできます。 2回目の発生時にのみ「危険」を「安全」に置き換えるように

[[email protected] ~]$ sed ‘s/danger/safety/2’ testfile.txt

ファイル全体のすべての行の2番目の出現で「危険」を置き換えるには、

を使用します。
[[email protected] ~]$ sed 's/danger/safety/2g' testfile.txt

例:11)特定の行の文字列を置き換える

特定の行からのみ文字列を置き換えるには、

を使用します
[[email protected] ~]$ sed '4 s/danger/safety/' testfile.txt

これは、ファイルの4行目の文字列のみを置き換えます。 1行ではなく、さまざまな行について言及することもできます。

[[email protected] ~]$  sed '4,9 s/danger/safety/' testfile.txt

例:12)一致した検索の前後に行を追加します

パターンが一致するたびにコンテンツを含む新しい行を追加するには、オプション「a」を使用します。

[[email protected] ~]$ sed '/danger/a "This is new line with text after match"' testfile.txt

すべてのパターンが一致する前にコンテンツを含む新しい行を追加するには、オプション「i」を使用します

[[email protected] ~]$ sed '/danger/i "This is new line with text before match" ' testfile.txt

例:13)一致したパターンで行全体を変更する

検索パターンが一致したときに行全体を新しい行に変更するには、sedでオプション「c」を使用する必要があります

[[email protected] ~]$ sed '/danger/c "This will be the new line" ' testfile.txt

したがって、パターンが「危険」と一致すると、行全体が上記の行に変更されます。

sedの高度なオプション

これまではsedで単純な式のみを使用していましたが、次に正規表現でsedの高度な使用法について説明します。

例:14)複数のsedコマンドの実行

複数のsed式を実行する必要がある場合は、オプション「e」を使用してsedコマンドをチェーンできます。

[[email protected] ~]$  sed -e 's/danger/safety/g' -e 's/hate/love/' testfile.txt

例:15)ファイルを編集する前にバックアップコピーを作成する

編集する前にファイルのバックアップコピーを作成するには、オプション「-i.bak」を使用します

[[email protected] ~]$ sed -i.bak -e 's/danger/safety/g'  testfile.txt

これにより、拡張子が.bakのファイルのバックアップコピーが作成されます。必要に応じて、他の拡張機能を使用することもできます。

例:16)パターンで始まりパターンで終わるファイル行を削除する

特定の文字列で始まり、別の文字列で終わる行を削除するには、

を使用します。
[[email protected] ~]$ sed -e 's/^danger.*stops$//g' testfile.txt

これにより、開始時に「危険」、最後に「停止」が含まれる行が削除され、間に任意の数の単語を含めることができます。「。*」はその部分を定義します。

例:17)行の追加

sedと正規表現を含むすべての行の前にコンテンツを追加するには、

を使用します。
[[email protected] ~]$ sed -e 's/.*/testing sed &/' testfile.txt

そのため、すべての行の前に「testingsed」があります。

例:18)コメントされたすべての行と空の行を削除する

コメント付きのすべての行、つまり#とすべての空の行を削除するには、

を使用します。
[[email protected] ~]$ sed -e 's/#.*//;/^$/d' testfile.txt

コメント行のみを削除するには、

を使用します
[[email protected] ~]$ sed -e 's/#.*//' testfile.txt

例:19)/ etc/passwdからすべてのユーザー名のリストを取得

/ etc / passwdファイルからすべてのユーザー名のリストを取得するには、

を使用します。
[[email protected] ~]$  sed 's/\([^:]*\).*/\1/' /etc/passwd

完全なリストすべてのユーザー名が出力として画面に生成されます。

例:20)sedコマンドでシステムリンクの上書きを防止する

「sed-i」コマンドは、システムリンクを削除し、リンクファイルの代わりに通常のファイルのみを作成することが知られています。したがって、このような状況を回避し、「 sed -i ‘リンクを破棄しないようにするには、‘ –follow-symklinksを使用します ‘実行中のコマンドのオプション。

CentOSまたはRHELサーバーでSELinuxを無効にしたい場合を考えてみましょう

[[email protected] ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

これらはsedを示すいくつかの例であり、これらのリファレンスを使用して、必要に応じてそれらを使用できます。この記事や記事に関連する質問がある場合は、私たちと共有してください。

また読むLinuxでファイルを安全に転送するための14のSCPコマンドの例


Linux
  1. Linuxコマンドラインに関する8つのヒント

  2. Linuxユーザー初心者向けコマンドチュートリアル(例付き)

  3. sed の紹介 (ストリーム エディター) :便利な sed コマンドの例

  1. Linux sedコマンド:ストリームエディタの使用方法

  2. 10 Sed (ストリーム エディター) コマンドの例

  3. Linux での sed コマンドの例

  1. Linuxユーザー向けの12のIPコマンド例

  2. 初心者向けのLinuxUniqコマンドチュートリアル(10例)

  3. 初心者向けのLinuxdirコマンド(10例)