テキストをフィルタリングするためのシェル スクリプトの正規表現

メタキャラクター

. 中国語の任意の 1 文字と一致します。
[] 指定された範囲内の任意の 1 文字と一致します (例: [zhou] [0-9] [] [a-zA-Z] [:alpha:] [^]指定された範囲外の任意の 1 文字と一致します
。例: [^zhou] [^az] [az]

[:alnum:] 文字と数字
[:alpha:] は、英語の大文字と小文字、つまり AZ、az
[: lower:] 小文字を表します。例: [[: lower:]]、[az] と同等
[:upper:] 大文字
[:blank:] 空白文字(スペースとタブ)
[:space:] には、スペース、タブ(水平および垂直)、改行、復帰など、さまざまな種類の空白文字が含まれます。 [:blank:] には、
広範囲
の [:cntrl:] 印刷不可能な制御文字 (バックスペース、削除、アラームなど) が含まれます (バックスペース、削除、アラームなど)
[:digit:] 10 進数の数字
[:xdigit:] 16 進数の数字
[:graph:] 印刷可能空白以外の文字
[:print:] 印刷可能な文字
[:punct:] 句読点
\w # 単語の構成要素と一致します。[ [:alnum:]]と同等
です。 \W # 単語以外の構成要素などと一致します。 [^
[と同等です。 :alnum:]]
\S #空白以外の文字と一致します。[^ \f\n\r\t\v] と同等。
\s # は、スペース、タブ、フォーム フィードなどを含む任意の空白文字と一致します。[ \f\n\r\t\v] と同等。
Unicode 正規表現は全角スペースと一致することに注意してください。
ここに画像の説明を挿入します

式の数

  • #前の文字と任意の回数 (0 回を含む) 一致します。貪欲モード: できるだけ長く一致します。
    * #任意の長さの文字 (0 回を除く)
    ? #前の文字と 0 回または 1 回一致します。つまり: OK オプション
    + #前の文字と少なくとも 1 回一致します。つまり、確実かつ >= 1 回
    {n} #前の文字と n 回一致します
    {m,n} #前の文字と少なくとも m 回、最大で n 回一致します
    { ,n} #前の文字と最大 n 回一致、<=n
    {n,} #前の文字と少なくとも n 回一致

例:
バンド表の前の o が 2 回表示されます。
ここに画像の説明を挿入します

バンド表の前の○が2回以上出現する
ここに画像の説明を挿入します
バンド表の前の○が2回以上5回未満出現する
ここに画像の説明を挿入します
バンド表の前の○が複数回出現する
ここに画像の説明を挿入します

位置固定

^ #行頭のアンカーリング、パターンの左端に使用
$ #行末のアンカーリング、パターンの右端に使用
^PATTERN$ #行全体のパターンマッチングに使用 (単一行にはルートのみ)
^$ #空行
^ [[:space:]]*$ #空行

< または \b #単語の先頭のアンカー、単語パターンの左側で使用 (連続する数字、文字、アンダースコアはすべて単語の内部とみなされます) > または \b #単語の終わりのアンカー、右側で
使用単語パターン
<PATTERN> # 単語全体に一致

例:
# 記号で始まらない空でない行をフィルターで除外する
ここに画像の説明を挿入します

グループ化またはその他

グループ化: () 複数の文字をまとめて、全体として扱います (例: (root)+)

バックリファレンス: グループ化括弧内のパターンと一致するコンテンツは、正規表現エンジンによって内部変数に記録されます。これらの変数の名前は、

形式は次のとおりです: \1、\2、\3、...

\1 は、左から最初の左括弧とそれに対応する右括弧の間のパターンと一致する文字を表します。
ここに画像の説明を挿入します

grep

grep [オプション]… 条件付き対象ファイルの検索

  • -i: 検索時に大文字と小文字を区別しない
  • -v: 逆検索、検索条件に一致しない行を出力します。
  • -o 一致するもののみを表示
  • -f は 2 つのファイル内の同じ行を比較します
  • -c 一致する行数
  • -n 一致する行番号を表示します
  • -r ディレクトリを再帰しますが、ソフト リンクは処理しません
  • R は再帰的ディレクトリですが、ソフト リンクを処理します
  • -w は単語全体に一致します
  • -q サイレント モード、情報を出力しません。

例:
現在のホストの接続状態をカウントし
ここに画像の説明を挿入します、現在接続されているホストの数をカウントします。

ここに画像の説明を挿入します

セド

一般的に使用されるオプション:
-n パターンスペースの内容を画面に出力しません。つまり、自動的に印刷しません。
-e マルチポイント編集
-r、-E 拡張正規表現を使用します。
-f FILE 指定されたファイルから編集スクリプトを読み取ります。
-i.bak ファイルをバックアップし、その場で編集します。
-s は、複数のファイルを単一の連続した長いファイル ストリームではなく、独立したファイルとして扱います。


sed '' /etc/fstab ファイルの内容を表示する
ここに画像の説明を挿入します

sed スクリプトの形式

一重引用符で囲んだスクリプトを記述する必要があります: アドレス + コマンド
#: 指定した行
$: 最後の行
#, # # 行 # から行 # まで (例: 3 行目から 6 行目までの 3, 6)
ここに画像の説明を挿入します

#,+# ##行目から+#行目(3、+4など)は3行目から7行目までを意味します
ここに画像の説明を挿入します

1 ~ 2 奇数行
0 ~ 2 偶数行p 現在のパターン スペースの内容を印刷し、
デフォルト出力に追加した後に
ここに画像の説明を挿入します
ここに画像の説明を挿入します* 行のみを表示します
ここに画像の説明を挿入しますここに画像の説明を挿入します

Ip case の出力を無視します
d パターンスペースに一致する行を削除し、すぐに次のサイクルを有効にします
a []text 指定された行の後にテキストを追加します。複数行の追加を実装するための \n の使用をサポートします
i []text 行の前にテキストを挿入します
c [ ] text 行を 1 行または複数行のテキストに置き換えます。
w file パターンが一致した行を指定されたファイルに保存します。
r file 指定されたファイルのテキストをパターン空間内の一致した行まで読み取ります
= 行の行番号を出力します。パターン空間
! パターン空間内 一致する行を否定し、
q を処理して sed を終了または終了します

検索と置換

s/pattern/string/Modifier の検索と置換は、他の形式の区切り文字の使用をサポートします。 s@@@、s### 置換修飾子
:
g インライン グローバル置換
p 正常に置換された行を表示します
w /PATH/FILE 正常に置換された行をファイルに保存します。
I,i は大文字と小文字を無視します。

s// は検索と置換を表します () はグループ化を表します\1 は残りのグループを表します
ここに画像の説明を挿入します

変数

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/q1231vev/article/details/132324048