[a-z]: 小文字
[A-Z]: 小文字または大文字
[ 0-9]: 数字
[a-zA-Z0-9]: 文字または数字の文字と一致します
: スペースを除く 1 つの任意の文字と一致します
[0 -f ]: 16 進数
abc | def: abc または def
a (bc | de) f: abcf または adef
<: 通常、単語の最初の単語の前にはスペースまたは特殊文字 区切るために、連続する文字列を単語として扱います
>: 単語の末尾
[^式]: 小文字を除くすべての文字 など。
2. 一致の数を制御するには、次の記号が続きます
expression*: 0 または n 文字
expression+ : 1 または n 文字
式? : 0 または 1 文字
式 {n} : n 文字
式 {n:m} : n ~ m 文字
式 {n, }: n 文字以上
3. 先頭と末尾の一致する文字を制御します
Expression$: 末尾は
と一致します
1. egrep フィルタリング ツール
-o: 一致するコンテンツのみを表示
-q: サイレントモード、いいえ出力では、実行が成功したかどうか、つまり、目的のコンテンツが除外されたかどうかを判断するために $? を使用する必要があります。
-l: 一致した場合は、ファイル名のみが出力されます。通常、 -rl を一緒に使用します。 grep -rl 'root' /etc
-A: 一致した場合、一致した行とそれに続く n 行が一緒に出力されます
-B: 一致が成功した場合、一致した行とその前の n 行が一緒に出力されます
-C: 一致が成功した場合、一致した行とその前後の n 行が出力されます一緒に印刷します
--color
- c: 一致が成功した場合、一致した行の数を出力します
-i: 大文字と小文字を無視します
-v: 否定、一致しません
-w: 単語の一致
2. sed ストリームエディタ
-e: 複数の編集、これはあまり明確ではありません
-i: 出力ではなくファイルの内容を直接変更します
-r: 拡張モード、次のことができます正規表現を使用します
-f: ファイル名を指定し、新しいファイルにアクションを記述します
1: 単一行
1,3: 1行目から3行目までの範囲
2,+4: 行以降の数行と一致
4,~3: 4行目から次の倍数まで3
2~3: 2行目 3行おきの行
$: 最終行
1!: 1行目以外の行
②正規表現の配置
正規表現は//でラップする必要があります
拡張正規表現は-rパラメータまたはエスケープで置き換える必要があります
の置き換え正規表現を使用できるサブパターン、つまり括弧 () 、 1 、 2 でサブパターンを表すことができます
*欲張り オプション: g を入力します。これは、行内のすべての一致する項目を置き換えることを意味します
コマンド:
c ∶ Change、
d ∶ delete delete、
i ∶ Insert、i の後に文字列を続けることができ、これらの文字列は新しい行 (現在は前の行) に表示されます
p∶ print print
s∶ 代替品を交換するには、交換作業を直接行うことができます。通常、このアクションは正規表現と組み合わせることができます。例: 1,20s/old/new/g
複数のコマンドを追加するには、{コマンド 1: コマンド 2: コマンド 3} を使用します s コマンド構文: sed -r 'Replace command s/replace content/greedy option g' ファイル名
3. Awk テキスト分析ツール
は、コマンド、正規表現 (// で囲む必要があります)、比較、関係演算で構成されます
ファイルの各行のスペーサーで区切られた各列の異なるフィールドを表すには、$1、$2、$3 などの順序を使用します。
awk -オプションパラメータ「論理判定{コマンド変数1、変数2、変数3}」ファイル名
-Fはフィールド区切り文字を定義します、デフォルトの区切り文字は連続スペースまたはタブです
-vは可能ですこのメソッドは、シェル変数から導入されます
AWK 変数
NR 現在のレコードの数 (すべてのファイルが接続された後の統計)
FNR現在のレコードの数 (すべてではなく、現在のファイルのみの統計)
FS デフォルトのフィールド区切り文字は、連続したスペースまたはタブです。 -F[:/]
OFS出力文字のデフォルトの区切り文字はスペースです
【OFSの例】
# awk -F: 'OFS="=====" {print $1,$2}' /etc/passwd
root=====x
NF 現在読み取られている行のフィールド数
ORS デフォルトの出力レコード区切り文字は改行です
[ORS の例]
# awk - F: 'ORS="=== ===" {print $1,$2}' /etc/passwd
root x=====bin x=====
FILENAME 現在のファイル名
【例1】AWK変数を使用する
# awk '{print NR,FNR,$1}' file1 file2
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff
#
【例2】シェル変数を引用する方法
# a=root
# awk -v var=$a -F : '$1 == var {print $0} ' /etc/passwd
または、コマンド全体を分割してシェル変数を公開するために渡します
# awk -F: '$1 == "'$a'" {print $0} ' /etc/passwd
# a=NF
# awk -F: '{print $'$a'}' /etc/passwd
= += -= /= *=: 代入
&& || !: 論理 AND 論理または論理 NOT
~ !~: 正規に一致するか一致しない、正規は /正規/ で囲む必要があります
< <= > > = != ==: 文字列を比較する場合、文字列は二重引用符で囲む必要があります
$: 変数参照は $ で追加する必要があります変数名で直接名前が付けられます
+ - * / % + + --: 演算子
\ self
$エスケープ $
tタブ
b バックスペース
r キャリッジリターン文字
n 改行文字
c 改行をキャンセル
詳細については、以下を参照してください。
以上が正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。