shell grep 正規表示式小問題

時間 2023-01-17 15:25:02

1樓:匿名使用者

樓主你好!

grep 是用於尋找檔案中的匹配指定的表示式的行,並把該行顯示出來。

你所制定的表示式 [a-z]\,是匹配一個或一個以上的小寫字母。

而該行abc_def中,符合該條件的有:

a, b, c, ab, bc, abc, d, e, f, de, ef, def

因此grep 會把該行的內容顯示出來。

希望有所幫助。

2樓:匿名使用者

grep的意思是找到匹配,如果要全文匹配在首尾分別加上^,$謝謝。

shell (e)grep正規表示式問題

3樓:不知詳解

單引號和雙引號可以連在一起用:

>a=2

>echo '$a='"a"

$a=2你要注意$2的內容會被作為正規表示式解釋,他不能含有正規表示式元字元。

grep -p '^s+'"2"'$file

4樓:防毒面罩

樓主且看我實驗。

[root@master ~]# cat -a temp$ 2$

$2$$2 aaa$

$^i2$[root@master ~]# grep -n ^\2$ temp

---說明:cat -a 顯示檔案的所有控制字元,在每行結束處顯示"$"將跳格字元(tab鍵)顯示為^i, 給你詳解一下我每一行的字元如下,第一行:空格$空格2

第二行:$空格2

第三行:$2空格。

第四行:$2

第五行:$2空格空格aaa

第六行:$tab鍵2

然後grep -n 列印輸出行的行數。 ^2$, 去掉$的元字元額特殊解釋。 然後^匹配開始,$匹配技結束,就得到第四行則是你想要的字串$2單獨為一行的輸出。

grep匹配正規表示式的問題

5樓:讓服務成就美好生活

grep 預設顯示匹配到的行。

如果只顯示匹配到的字元**引數-o

也就是說你命令這樣寫能達到你想要的目的。

grep -o -n '^a-z]' regular_

6樓:匿名使用者

你確定?你所寫的僅表示以小寫字母開頭的行,並非單個字元。如果要表示單個字元還得在尾部加上$符號。

linux下grep的正規表示式問題 10

7樓:匿名使用者

grep -t試試呢。

man grep裡的說明裡你看看有沒有你要的。

shell正規表示式問題

8樓:不知詳解

在linux系統下正規表示式有多種語法。不同軟體的語法也有不同。grep vim php c++ shell 所使用的正則式都有所差異。

grep 本身就支援多種。參見手冊的 -g -e -p 引數。

grep 要加一個 -p 參數列示使用perl正規表示式,或者使用-e 參數列示元字元擴充套件:

ls -1 |grep -p '(uxv)'

如果不加這兩個引數。

對於( 和{ 就必須寫成 \(

9樓:匿名使用者

第一個應該是對的!!我用php測試過,不知道shell下是怎樣的。 方便的話發shell原始碼給我,我看看,謝謝。

shell 正規表示式問題

10樓:網友

問題描述應該是這樣的:"去除多餘的雙引號,即,對多個連續的雙引號,只保留一個"。

因此,這樣就可以了:

sed -r 's/"+g' 正則中,+表示重複前面一個字元1次或以上(至少一次)。

當然,也可以寫為:

sed -r 's/"/g' 表示2次或以上。這樣,出現1次的就可以不用處理。

實測結果如下:

11樓:匿名使用者

下面的 2個正規表示式執行後 全部失敗 請高手幫幫忙看看 是怎麼回事。原始資料:

正規表示式替換後資料。

sed -i /system/ -e 's/^[#;]*0-9a-za-z]\[t]=[t][0-9.:]0-9a-za-z]\\122222222222222222222/g'原始資料:

正規表示式替換後資料。

sed -i /system/ -e 's/^[#;]*0-9a-za-z]\\0-9a-za-z]\\122222222222222222222/g'

字串uxv連續出現了10次(就是uxvuxvuxv...的正規表示式是什麼?

(uxv)? 這樣實驗過,不對。

uxv 是表示字元v出現了10次。

shell grep中的正規表示式如何匹配星號

12樓:匿名使用者

其實你寫的方法是對的,就是需要注意一個問題,就是檔案的格式。

如果是linux檔案的格式,你的寫法沒有任何問題。

但是如果是windows的話就錯了。。你試試。

13樓:匿名使用者

在星號前加轉意字元\

shell grep命令的多個正規表示式 組合使用。

14樓:匿名使用者

可以使用 perl 正規表示式。

grep -p "\b(?!0-9]|[a-z]))0-9a-z]\b"

15樓:月輪天唯五

grep -p "\b(?!0-9]|[a-z]))0-9a-z]\b" log

推薦在linux下多使用man命令。

man grep

請教一個grep正規表示式字串匹配的問題

16樓:匿名使用者

grep可以,加上引數-o,其可用的最好的正規表示式引擎是perl風格的,需要在命令列加引數-p

籠統地說正規表示式沒有意義,不同的語言利用正規表示式完成匹配後,想輸出什麼,和正規表示式已經沒有關係了,完全看程式的邏輯,grep加上-o引數其實就是實現了「輸出匹配」的邏輯。

如你的例子,假設內容存在中,則grep -p -o "a_[^sz_]*z" 如果只要中間的,不要a_和_z,則。

grep -p -o "(a_)[sz_]*z)"

正規表示式中如何替換自身,正規表示式如何替換並修改自身的部分內容?

正則式 d 加圓括號表示分組並作為 反向索引 d表示一位數字 替換為 1a 1表示引用第1個組,對每個數字,替換為它本身跟上字母a 我用的emeditor,不同環境正則式語法也有差別。d可用 0 9 替代 1在有些環境中是 1 計名 其實,1 和 2 之間有 b 2 和 3 之間 b 123 s b...

c正規表示式

轉義字元 可接收字元 不可接受字元 匹配前後表示式 分組 連字元 0次或n次 1次或n次 0次或一次 起始字元 結束字元 只能輸入n個字元 至少輸入n個字元 輸入n到m個字元 匹配任何字元除 n 換行字元 d 匹配當個數字 0 9 d 非數字 w 匹配 0 9a za z 第二體 就是一個一個分析就...

正規表示式如何匹配出最短字串,正規表示式如何匹配除某些字串以外的所有字元

當正規表示式中包含能接受重複的限定符時,通常的行為是 在使整個表示式能得到匹配的前提下 匹配儘可能多的字元。考慮這個表示式 a.b,它將會匹配最長的以a開始,以b結束的字串。如果用它來搜尋aabab的話,它會匹配整個字串aabab。這被稱為貪婪匹配。有時,我們更需要懶惰匹配,也就是匹配儘可能少的字元...