shell正規表示式的幾個問題

2021-09-28 20:22:45 字數 928 閱讀 7158

[liuqiang@mu01 greptest]$ cat numbers.txt 

123214.

0987654 456789.678 9 192

1234567.

222111. 21.

[liuqiang@mu01 greptest]$ grep '[0-9]\\.' numbers.txt //方法1

123214.

0987654 456789.678 9 192

1234567.

222111. 21.

[liuqiang@mu01 greptest]$grep '^[0-9]\\.' numbers.txt //方法2

123214.

222111. 21.

[liuqiang@mu01 greptest]$ grep '\<[0-9]\\.' numbers.txt //方法3

123214.

0987654 456789.678 9 192

222111. 21.

[liuqiang@mu01 greptest]$ grep '\<[0-9]\\.\>' numbers.txt //方法4

[liuqiang@mu01 greptest]$

以上,存在幾個問題:

1. 方法2中^[***]的這種形式,指的是加了^之後,就必須滿足完整匹配,即剛好6個數字才行的字串,所以456789.678 這行是不行。

2. 方法3中使用字串限定的方式,並沒有考慮結尾,因此456789.678 被選中。

3. 傳統的方法是方法1,但是方法1顯然只是考慮包含的關係,因此1234567. 明明是7個數字,也被選中。

4. 為什麼方法4的執行結果為空?

以上4個問題,前面3個不知道我的理解對不對,第四個我還是不明白 。

非常感謝!

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell 正規表示式

一 從頭開始 echo the book sed n the p 二 結尾 三 聯合定位 this is a test 四 點字元 用於匹配除換行符之外的任何乙個單一字元 五 字元類 定義一類字元,用於匹配文字模式中的某一位置 例如 echo n ch at p data the cat is sl...