sed
などのツール (ストリームエディタ)およびgrep
(グローバル正規表現印刷)は、時間を節約し、作業を高速化するための強力な方法です。ユースケースを深く掘り下げる前に、後で行うテキスト操作に必要な正規表現(正規表現)について簡単に説明します。
正規表現とは何ですか?ログファイル、テキストファイル、またはコードの一部を処理する場合、
これらはすべて文字で構成されていることを理解する必要があります。ファイルの長さが長い場合、デバッグを容易にするために、特定のパターンを除外する必要があります。これらのユースケース全体で正規表現の例を見つけることができます。
グループ1:サーバーデータ
文字列が出現するファイルがあるとします:
では、site1
をどのように除外しますか の詳細(上記のファイルは簡単な例です)。必要な情報を取得してエントリを操作することしかできませんか?
明らかに、ファイル全体に共通のパターン(「クラウド展開」)があることがわかります。これで、フィルタリング技術を使用して、grep
を使用してファイルから情報を取得できるようになりました。 。これを「getregexnprint」として覚えています。
異なるリージョンのサーバーが必要な場合は、grep
を使用できます 次のように:
ユースケース2
ここで、IPに基づいてサーバーをフィルターで除外したいとします。次を使用して同じことを行うことができます:
ユースケース3
ここで、最初のgrep
を見てください。 コマンド画像。システムのサブネット範囲を知っていても、コマンドはファイル全体に10.1の出現を出力しました。
このタイプのユースケースをどのように解決できますか?この問題は、次のような正規表現ベースの高度なフィルタリングを使用して処理できます。
この例は、grep
の可能な使用法にすぎません。 。繰り返しになりますが、これは比較的小さなファイルであるため、上記のファイルを使用して必要なものを取得できます。 -v
switchは検索条件を逆にします。つまり、grep
ファイルsed-grep.txt
を検索します <search-pattern>
を除くすべての詳細を印刷します (この場合は10.1)。
IPアドレスを置き換えて、それらのリージョン内のすべてのサーバーを別のサブネットに移動するとします。 sed
を使用できます このユースケースの場合。
マニュアルページから、sed
次の形式を使用します:
sed [options] commands [file-to-edit]
このユースケースのコマンドは次のようになります:
このコマンドは次のように分類されます。
s
代替の略です。-
%
は区切り文字です(ここでは任意の文字を使用できます)。 <search pattern>
最初の%
の後に表示されます 。-
<replace pattern>
2番目の%
の後に表示されます 。 -
g
グローバル置換(ファイル全体を意味する)を表します。
または:
s%<search-pattern>%<replace-pattern>%g
ファイル内のサーバーのリージョンを変更することもできます:
ユースケース6
このユースケースはより高度です。コメントのみを削除します(#
)sed
を使用してファイルから :
このコマンドは、#
の場合 行の最初の文字として表示され、その行を空白に置き換えます。その結果、このコマンドはファイルからコメントを削除する役割を果たします。
グループ2:/ etc / passwd
今回は/etc/passwd
を含むいくつかのユースケースを見てみましょう。 。
/etc/passwd
ファイルからユーザーを取得するとします。 ファイル。 sed
を使用できます 次のように:
ユースケース2
/etc/passwd
から最初の10人のユーザーのみを取得したい場合はどうなりますか ? sed
を使用できます およびawk
この目的のために(ここで私にご容赦ください):
このコマンドは次のように分類されます:
-
sed -n
すべてを印刷しないことを意味します。 -
p
1行目から10行目を印刷します。 -
awk
ここでは:
を使用します フィールドセパレータとして使用し、最初の列を出力します。
sed
を使用して、テキストファイルの特定の範囲の行を削除します :
SELinuxのユースケース
これがsed
の例です SELinuxを操作するためのコマンド:
結論
これは、読者にsed
を使用する可能性のほんの一部を紹介するための私の試みです。 およびgrep
。これらのコマンドを使用して、多くのテキスト操作を行うことができます。詳細については、マニュアルページを使用してさまざまなオプションを参照してください。
[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。]