[シェル] 正規表現: 一般的なワイルドカード、メタキャラクター、エスケープ文字

1. 定義

正規表現は、特定のパターンを使用して文字列の種類に一致する式であり、文字列とメタ文字で構成される文字列です。メタキャラクタと呼ばれるものは、文字表現の内容を説明したり、さまざまな操作情報を変換・記述したりするために使用される文字です。

 

2. 一般的なワイルドカード

1. を一致させる

1.1 「.」ドット表記

ドット表記は、 newline を除く任意の文字と一致するために使用されます。

[root@localhost ~]# grep 'r..t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

 

1.2. 「?」記号: 任意の記号を表します。

ワイルドカードとして使用すると、任意の文字を表します。
文字 A で始まり、途中に文字があり、.doc で終わるファイルを一覧表示する場合は、「?」を使用する必要があります。

[root@localhost ~]# ls-l A?.doc

 

1.3. " $ " 記号: 末尾の一致

「 $ 」は末尾の一致に使用されます。たとえば、「 abc$ 」は abc で終わる行を表します。

" ^$ ": ^ と $ の間には何もないため、行が空であることを意味します

# 以r开头,中间有一串任意字符,以h结尾的行
[root@localhost ~]# grep '^r.*h$' /etc/passwd
root:x:0:0:root:/root:/bin/bash

 

1.4. 「[]」記号

角括弧内にある任意の文字と一致するために使用されます

正規表現で表現されるオプション A、B、C、D のいずれかは [ABCD] です。
大文字と一致するには、「-」記号を使用して範囲を制限し、[AZ] と記述して一致させる必要があります。すべての文字 次に [A-Za-z] を書きます。

携帯電話番号と一致します: 「^1[38][0-9]{9}」

 

1.5. 「^」記号と「!」記号

  1. 「[]」内にある場合は否定を意味します。[^A] (または [!A]) は A ではないことを意味します。
  1. 最初に一致させるために使用されます。たとえば、「^root」は root という文字で始まる行に一致します。
[root@localhost ~]# grep '^root' 
/etc/passwdroot:x:0:0:root:/root:/bin/bash

 

2. 複数の一致

2.1. 「*」記号

0 個以上の文字を表します。たとえば、*.doc は .doc で終わるすべてのファイルを指します。

」記号は、「.」記号と一緒に使用されることがよくあります。たとえば、「.」は改行を含まない任意の長さの文字を表します。

[root@localhost ~]# grep 'r*t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
。。。。

 

2.2. 「{n,m}」表記

「 * 」では一致の繰り返し数を正確に制御できませんが、「{n,m}」記号を使用すると、文字の繰り返し数をより柔軟に制御できます。

 

2.3. 「{}」記号

かっこで囲まれたすべてのカンマ区切り文字と一致します。

たとえば、次のリストは、文字 A、B、C で始まり .doc で終わるすべてのファイルをリストします。

#第一种方法:用“{
    
    }[root@localhost ~]# ls -l {
    
    A,B,C}.doc
#第二种方法:用“[][root@localhost ~]# ls -l [A-C].doc
#以上两种方法都能满足题意,但是如果要列出以字母AB或者CD开头、以.doc结尾的文件,就只能用“{
    
    }”了。
[root@localhost ~]# ls -l {
    
    [A-Z]*.doc,[0-9]??.txt}

 

3. メタキャラクターとエスケープ文字

ここに画像の説明を挿入

 

ここに画像の説明を挿入

 
 

参考:
https://www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html

おすすめ

転載: blog.csdn.net/hiliang521/article/details/131532569