linuxgrep
Ⅰ linux命令里,grep * 是什麼意思
任意一個位元組 . 與重復位元組 *
這兩個符號在正則表達式的意義如下:
. (小數點):代表『一定有一個任意位元組』的意思;
* (星號):代表『重復前一個字元, 0 到無窮多次』的意思,為組合形態
假設我需要找出 g??d 的字串,亦即共有四個位元組, 起頭是 g 而結束是 d ,我可以這樣做:
[root@www ~]# grep -n 'g..d' regular_express.txt
1:"Open Source" is a good mechanism to develop programs.
9:Oh! The soup taste good.
16:The world <Happy> is the same with "glad".
因為強調 g 與 d 之間一定要存在兩個位元組,因此,第 13 行的 god 與第 14 行的 gd 就不會被列出來啦!
如果我想要列出有 oo, ooo, oooo 等等的數據, 也就是說,至少要有兩個(含) o 以上,該如何是好?
因為 * 代表的是『重復 0 個或多個前面的 RE 字元』的意義, 因此,『o*』代表的是:『擁有空位元組或一個 o 以上的位元組』,因此,『 grep -n 'o*' regular_express.txt 』將會把所有的數據都列印出來終端上!
當我們需要『至少兩個 o 以上的字串』時,就需要 ooo* ,亦即是:
[root@www ~]# grep -n 'ooo*' regular_express.txt
1:"Open Source" is a good mechanism to develop programs.
2:apple is my favorite food.
3:Football game is not use feet only.
9:Oh! The soup taste good.
18:google is the best tools for search keyword.
19:goooooogle yes!
如果我想要字串開頭與結尾都是 g,但是兩個 g 之間僅能存在至少一個 o ,亦即是 gog, goog, gooog.... 等等,那該如何?
[root@www ~]# grep -n 'goo*g' regular_express.txt
18:google is the best tools for search keyword.
19:goooooogle yes!
如果我想要找出 g 開頭與 g 結尾的行,當中的字元可有可無
[root@www ~]# grep -n 'g.*g' regular_express.txt
1:"Open Source" is a good mechanism to develop programs.
14:The gd software is a library for drafting programs.
18:google is the best tools for search keyword.
19:goooooogle yes!
20:go! go! Let's go.
因為是代表 g 開頭與 g 結尾,中間任意位元組均可接受,所以,第 1, 14, 20 行是可接受的喔! 這個 .* 的 RE 表示任意字元是很常見的.
Ⅱ linux系統grep
我記得 Linux 下面,就算是在 " 或者 ' 裡面的類似參數的那種樣子的字元串,依然會被識別成命令的參數,和其他的 --xxxxx 一起進行識別。
只不過被 " 或者 ' 包起來的東西,會被當作一個整體進行識別。
如果需要這種的數據不去做 --xxxx 一樣的參數識別,可以在他的前面加 -- 來進行分割,-- 之前的 --xxxxx 參數都會被繼續的識別,在命令見到 -- 之後,就不會再識別 --xxxxx 的參數而是當作非 --xxxxx 的參數進行處理了。
對了 -- 好像對 -x 這種參數也有效。
Ⅲ linux的grep查詢命令
grep默認只能識別基本的正則表達式,如果需要高級的,需要這樣:
grep -E 'A.*B|B.*A' filename
可以找到符合要求的,或者使用awk:
awk '/A/&&/B/' filename
Ⅳ Linux裡面grep作用是什麼
grep是Linux中很常用的命令,用於查找文件中符合條件的字元串,如果查到,會把文件的那一列顯示出來。
支持通配符,支持正則表達式,功能強大。
Ⅳ linux中的grep怎麼用~
grep abc /Desktop/AA 功能就是在桌面AA文檔中查找abc的文本 如果有則將包含有AA的行全部顯示
AA這一文檔必須為文本類型的,下面是參照,
grep指令用於查找內容包含指定的範本樣式的文件,如果發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為「-」,則grep指令會從標准輸入設備讀取數據。
參 數:
-a或--text 不要忽略二進制的數據。
-A<顯示列數>或--after-context=<顯示列數> 除了顯示符合範本樣式的那一列之外,並顯示該列之後的內容。
-b或--byte-offset 在顯示符合範本樣式的那一列之前,標示出該列第一個字元的位編號。
-B<顯示列數>或--before-context=<顯示列數> 除了顯示符合範本樣式的那一列之外,並顯示該列之前的內容。
-c或--count 計算符合範本樣式的列數。
-C<顯示列數>或--context=<顯示列數>或-<顯示列數> 除了顯示符合範本樣式的那一列之外,並顯示該列之前後的內容。
-d<進行動作>或--directories=<進行動作> 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。
-e<範本樣式>或--regexp=<範本樣式> 指定字元串做為查找文件內容的範本樣式。
-E或--extended-regexp 將範本樣式為延伸的普通表示法來使用。
-f<範本文件>或--file=<範本文件> 指定範本文件,其內容含有一個或多個範本樣式,讓grep查找符合範本條件的文件內容,格式為每列一個範本樣式。
-F或--fixed-regexp 將範本樣式視為固定字元串的列表。
-G或--basic-regexp 將範本樣式視為普通的表示法來使用。
-h或--no-filename 在顯示符合範本樣式的那一列之前,不標示該列所屬的文件名稱。
-H或--with-filename 在顯示符合範本樣式的那一列之前,表示該列所屬的文件名稱。
-i或--ignore-case 忽略字元大小寫的差別。
-l或--file-with-matches 列出文件內容符合指定的範本樣式的文件名稱。
-L或--files-without-match 列出文件內容不符合指定的範本樣式的文件名稱。
-n或--line-number 在顯示符合範本樣式的那一列之前,標示出該列的列數編號。
-q或--quiet或--silent 不顯示任何信息。
-r或--recursive 此參數的效果和指定「-d recurse」參數相同。
-s或--no-messages 不顯示錯誤信息。
-v或--revert-match 反轉查找。
-V或--version 顯示版本信息。
-w或--word-regexp 只顯示全字元合的列。
-x或--line-regexp 只顯示全列符合的列。
-y 此參數的效果和指定「-i」參數相同。
Ⅵ linux grep中文意思是什麼
Grep : global search regular expression(RE) and print out the line, 全面搜索正則表達式並把行列印出來。 是一個可以從文件或流中查找字元串的一個命令行工具, 它可以通過使用正則表達式來更靈活的查找一個字元串,就是通過復雜的模式進行查找以滿足你的需要。
Ⅶ linux中grep和find的區別
1.
linux中的find等同與win中的搜索文件。
find是在磁碟/分區中找到文件,可以配type可以配size
time等,通過文件名或文件大小或訪問時間找到指定文件。
2.
linux中的grep等同與win中的findstr命令。可以在一個txt文本中截取到有特定關鍵字的行,並顯示出來。
grep也可以通過關鍵字,在一個文件夾下查找多個有這些關鍵字的文件,並生成結果。
3.
可以詳細參考find命令在網路的文庫文檔
http://wenku..com/view/5e4070160b4e767f5acfce0b.html
Ⅷ linux grep命令怎麼用
grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字元, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字元表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。
grep的詳細使用方法有很厚一本書,此處無法詳細說明,只能列出grep常用用法
[root@www ~]# grep [-acinv] [--color=auto] '搜尋字元串' filename
選項與參數:
-a :將 binary 文件以 text 文件的方式搜尋數據
-c :計算找到 '搜尋字元串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字元串' 內容的那一行!
--color=auto :可以將找到的關鍵詞部分加上顏色的顯示喔!
Ⅸ Linux下Grep命令的詳細使用方法
在linux中grep命令是非常有用的,它和管道(|)配合使用,非常強大,用於搜索文本文件.如果想要在幾個文本文件中查找一字元串,可以使用『grep』命令。『grep』在文本中搜索指定的字元串。
假設您正在『/usr/src/linux/Documentation』目錄下搜索帶字元串『magic』的文件:
$ grep magic /usr/src/linux/Documentation/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件『sysrp.txt』包含該字元串,討論的是 SysRQ 的功能。
默認情況下,『grep』只搜索當前目錄。如果此目錄下有許多子目錄,『grep』會以如下形式列出:
grep: sound: Is a directory
這可能會使『grep』的輸出難於閱讀。這里有兩種解決的辦法:
明確要求搜索子目錄:grep -r
或忽略子目錄:grep -d skip
當然,如果預料到有許多輸出,您可以通過 管道 將其轉到『less』上閱讀:
$ grep magic /usr/src/linux/Documentation/* | less
這樣,您就可以更方便地閱讀。
有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,『grep』會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 <CTRL c> ,然後再試。
下面是一些有意思的命令行參數:
grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字元串的一部分(如匹配『magic』,而不是『magical』),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
這里還有些用於搜索的特殊符號:
\< 和 \> 分別標注單詞的開始與結尾。
例如:
grep man * 會匹配 『Batman』、『manic』、『man』等,
grep '\<man' * 匹配『manic』和『man』,但不是『Batman』,
grep '\<man\>' 只匹配『man』,而不是『Batman』或『manic』等其他的字元串。
'^':指匹配的字元串在行首,
'$':指匹配的字元串在行尾,
如果您不習慣命令行參數,可以試試圖形界面的『grep』,如 reXgrep 。這個軟體提供 AND、OR、NOT 等語法,還有漂亮的按鈕 :-) 。如果您只是需要更清楚的輸出,不妨試試 fungrep 。
Ⅹ Linux的grep
^# 的意思是開頭是#,^指的是行開頭
^$ 的意思是空行,$指的是行尾
所以這命令的意思是,去掉vsftpd.conf里以#開頭的行,和空行