linux全局搜索的命令 linux全盤搜索關鍵字

Linux常用指令---grep(搜索過濾)(轉)

Linux常用指令---grep(搜索過濾) (轉)

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的浦城網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

Linux系統(tǒng)中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹?配的行打印出來。grep全稱是Global?Regular?Expression?Print,表示全局正則表達式版本,它的使用權限是所有用戶。

grep的工作方式是這樣的,它在一個或多個文件中搜索字符串模板。如果模板包括空格,則必須被引用,模板后的所有字符串被看作文件名。搜索的結果被送到標準輸出,不影響原文件內容。

grep可用于shell腳本,因為grep通過返回一個狀態(tài)值來說明搜索的狀態(tài),如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。

1.命令格式:

grep?[option]?pattern?file

2.命令功能:

用于過濾/搜索的特定字符??墒褂谜齽t表達式能多種命令配合使用,使用上十分靈活。

3.命令參數(shù):

-a???--text???#不要忽略二進制的數(shù)據(jù)。???

-A顯示行數(shù)???--after-context=顯示行數(shù)???#除了顯示符合范本樣式的那一列之外,并顯示該行之后的內容。???

-b???--byte-offset???#在顯示符合樣式的那一行之前,標示出該行第一個字符的編號。???

-B顯示行數(shù)???--before-context=顯示行數(shù)???#除了顯示符合樣式的那一行之外,并顯示該行之前的內容。???

-c????--count???#計算符合樣式的列數(shù)。???

-C顯示行數(shù)????--context=顯示行數(shù)或-顯示行數(shù)???#除了顯示符合樣式的那一行之外,并顯示該行之前后的內容。???

-d?動作??????--directories=動作???#當指定要查找的是目錄而非文件時,必須使用這項參數(shù),否則grep指令將回報信息并停止動作。???

-e范本樣式??--regexp=范本樣式???#指定字符串做為查找文件內容的樣式。???

-E??????--extended-regexp???#將樣式為延伸的普通表示法來使用。???

-f規(guī)則文件??--file=規(guī)則文件???#指定規(guī)則文件,其內容含有一個或多個規(guī)則樣式,讓grep查找符合規(guī)則條件的文件內容,格式為每行一個規(guī)則樣式。???

-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???#在顯示符合樣式的那一行之前,標示出該行的列數(shù)編號。???

-q???--quiet或--silent???#不顯示任何信息。???

-r???--recursive???#此參數(shù)的效果和指定“-d?recurse”參數(shù)相同。???

-s???--no-messages???#不顯示錯誤信息。???

-v???--revert-match???#顯示不包含匹配文本的所有行。???

-V???--version???#顯示版本信息。???

-w???--word-regexp???#只顯示全字符合的列。???

-x????--line-regexp???#只顯示全列符合的列。???

-y???#此參數(shù)的效果和指定“-i”參數(shù)相同。

4.規(guī)則表達式:

grep的規(guī)則表達式:

^??#錨定行的開始?如:'^grep'匹配所有以grep開頭的行。????

$??#錨定行的結束?如:'grep$'匹配所有以grep結尾的行。????

.??#匹配一個非換行符的字符?如:'gr.p'匹配gr后接一個任意字符,然后是p。????

*??#匹配零個或多個先前字符?如:'*grep'匹配所有一個或多個空格后緊跟grep的行。????

.*???#一起用代表任意字符。???

[]???#匹配一個指定范圍內的字符,如'[Gg]rep'匹配Grep和grep。????

[^]??#匹配一個不在指定范圍內的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個字母開頭,緊跟rep的行。????

\(..\)??#標記匹配字符,如'\(love\)',love被標記為1。????

\??????#錨定單詞的開始,如:'\

\??????#錨定單詞的結束,如'grep\'匹配包含以grep結尾的單詞的行。????

x\{m\}??#重復字符x,m次,如:'0\{5\}'匹配包含5個o的行。????

x\{m,\}??#重復字符x,至少m次,如:'o\{5,\}'匹配至少有5個o的行。????

x\{m,n\}??#重復字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10個o的行。???

\w????#匹配文字和數(shù)字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零個或多個文字或數(shù)字字符,然后是p。???

\W????#\w的反置形式,匹配一個或多個非單詞字符,如點號句號等。???

\b????#單詞鎖定符,如:?'\bgrep\b'只匹配grep。??

POSIX字符:

為了在不同國家的字符編碼中保持一至,POSIX(The?Portable?Operating?System?Interface)增加了特殊的字符類,如[:alnum:]是[A-Za-z0-9]的另一個寫法。要把它們放到[]號內才能成為正則表達式,如[A-?Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符類。

[:alnum:]????#文字數(shù)字字符???

[:alpha:]????#文字字符???

[:digit:]????#數(shù)字字符???

[:graph:]????#非空字符(非空格、控制字符)???

[:lower:]????#小寫字符???

[:cntrl:]????#控制字符???

[:print:]????#非空字符(包括空格)???

[:punct:]????#標點符號???

[:space:]????#所有空白字符(新行,空格,制表符)???

[:upper:]????#大寫字符???

[:xdigit:]???#十六進制數(shù)字(0-9,a-f,A-F)??

5.使用實例:

實例1:查找指定進程

命令:

ps?-ef|grep?svn

輸出:

[root@localhost?~]#?ps?-ef|grep?svn

root?4943???1??????0??Dec05?????00:00:00?svnserve?-d?-r?/opt/svndata/grape/

root?16867?16838??0?19:53?pts/0????00:00:00?grep?svn

[root@localhost?~]#

說明:

第一條記錄是查找出的進程;第二條結果是grep進程本身,并非真正要找的進程。

實例2:查找指定進程個數(shù)

命令:

ps?-ef|grep?svn?-c

ps?-ef|grep?-c?svn

輸出:

[root@localhost?~]#?ps?-ef|grep?svn?-c

2

[root@localhost?~]#?ps?-ef|grep?-c?svn?

2

[root@localhost?~]#

說明:

實例3:從文件中讀取關鍵詞進行搜索

命令:

cat?test.txt?|?grep?-f?test2.txt

輸出:

[root@localhost?test]#?cat?test.txt?

hnlinux

peida.cnblogs.com

ubuntu

ubuntu?linux

redhat

Redhat

linuxmint

[root@localhost?test]#?cat?test2.txt?

linux

Redhat

[root@localhost?test]#?cat?test.txt?|?grep?-f?test2.txt

hnlinux

ubuntu?linux

Redhat

linuxmint

[root@localhost?test]#

說明:

輸出test.txt文件中含有從test2.txt文件中讀取出的關鍵詞的內容行

實例3:從文件中讀取關鍵詞進行搜索?且顯示行號

命令:

cat?test.txt?|?grep?-nf?test2.txt

輸出:

[root@localhost?test]#?cat?test.txt?

hnlinux

peida.cnblogs.com

ubuntu

ubuntu?linux

redhat

Redhat

linuxmint

[root@localhost?test]#?cat?test2.txt?

linux

Redhat

[root@localhost?test]#?cat?test.txt?|?grep?-nf?test2.txt

1:hnlinux

4:ubuntu?linux

6:Redhat

7:linuxmint

[root@localhost?test]#

說明:

輸出test.txt文件中含有從test2.txt文件中讀取出的關鍵詞的內容行,并顯示每一行的行號

實例5:從文件中查找關鍵詞

命令:

grep?'linux'?test.txt

輸出:

[root@localhost?test]#?grep?'linux'?test.txt?

hnlinux

ubuntu?linux

linuxmint

[root@localhost?test]#?grep?-n?'linux'?test.txt?

1:hnlinux

4:ubuntu?linux

7:linuxmint

[root@localhost?test]#

說明:

實例6:從多個文件中查找關鍵詞

命令:

grep?'linux'?test.txt?test2.txt

輸出:

[root@localhost?test]#?grep?-n?'linux'?test.txt?test2.txt?

test.txt:1:hnlinux

test.txt:4:ubuntu?linux

test.txt:7:linuxmint

test2.txt:1:linux

[root@localhost?test]#?grep?'linux'?test.txt?test2.txt?

test.txt:hnlinux

test.txt:ubuntu?linux

test.txt:linuxmint

test2.txt:linux

[root@localhost?test]#

說明:

多文件時,輸出查詢到的信息內容行時,會把文件的命名在行最前面輸出并且加上":"作為標示符

實例7:grep不顯示本身進程

命令:

ps?aux|grep?\[s]sh

ps?aux?|?grep?ssh?|?grep?-v?"grep"

輸出:

[root@localhost?test]#?ps?aux|grep?ssh

root???2720??0.0??0.0??62656??1212????????Ss???Nov02???0:00?/usr/sbin/sshd

root??16834??0.0??0.0??88088??3288????????Ss???19:53???0:00?sshd:?root@pts/0?

root??16901??0.0??0.0??61180???764?pts/0??S+???20:31???0:00?grep?ssh

[root@localhost?test]#?ps?aux|grep?\[s]sh]

[root@localhost?test]#?ps?aux|grep?\[s]sh

root???2720??0.0??0.0??62656??1212????????Ss???Nov02???0:00?/usr/sbin/sshd

root??16834??0.0??0.0??88088??3288????????Ss???19:53???0:00?sshd:?root@pts/0?

[root@localhost?test]#?ps?aux?|?grep?ssh?|?grep?-v?"grep"

root???2720??0.0??0.0??62656??1212????????Ss???Nov02???0:00?/usr/sbin/sshd

root??16834??0.0??0.0??88088??3288????????Ss???19:53???0:00?sshd:?root@pts/0

說明:

實例8:找出已u開頭的行內容

命令:

cat?test.txt?|grep?^u

輸出:

[root@localhost?test]#?cat?test.txt?|grep?^u

ubuntu

ubuntu?linux

[root@localhost?test]#

說明:

實例9:輸出非u開頭的行內容

命令:

cat?test.txt?|grep?^[^u]

輸出:

[root@localhost?test]#?cat?test.txt?|grep?^[^u]

hnlinux

peida.cnblogs.com

redhat

Redhat

linuxmint

[root@localhost?test]#

說明:

實例10:輸出以hat結尾的行內容

命令:

cat?test.txt?|grep?hat$

輸出:

[root@localhost?test]#?cat?test.txt?|grep?hat$

redhat

Redhat

[root@localhost?test]#

說明:

實例11:輸出ip地址

命令:

ifconfig?eth0|grep?-E?"([0-9]{1,3}\.){3}[0-9]"

輸出:

[root@localhost?test]#?ifconfig?eth0|grep?"[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"

inet?addr:192.168.120.204??Bcast:192.168.120.255??Mask:255.255.255.0

[root@localhost?test]#?ifconfig?eth0|grep?-E?"([0-9]{1,3}\.){3}[0-9]"

inet?addr:192.168.120.204??Bcast:192.168.120.255??Mask:255.255.255.0

[root@localhost?test]#

說明:

實例12:顯示包含ed或者at字符的內容行

命令:

cat?test.txt?|grep?-E?"ed|at"

輸出:

[root@localhost?test]#?cat?test.txt?|grep?-E?"peida|com"

peida.cnblogs.com

[root@localhost?test]#?cat?test.txt?|grep?-E?"ed|at"

redhat

Redhat

[root@localhost?test]#

說明:

實例13:顯示當前目錄下面以.txt?結尾的文件中的所有包含每個字符串至少有7個連續(xù)小寫字符的字符串的行

命令:

grep?'[a-z]\{7\}'?*.txt

輸出:

[root@localhost?test]#?grep?'[a-z]\{7\}'?*.txt

test.txt:hnlinux

test.txt:peida.cnblogs.com

test.txt:linuxmint

[root@localhost?test]#

實例14:日志文件過大,不好查看,我們要從中查看自己想要的內容,或者得到同一類數(shù)據(jù),比如說沒有404日志信息的

命令:

grep?'.'?access1.log|grep?-Ev?'404'??access2.log

grep?'.'?access1.log|grep?-Ev?'(404|/photo/|/css/)'??access2.log

grep?'.'?access1.log|grep?-E?'404'??access2.log

輸出:

[root@localhost?test]#?grep?“.”access1.log|grep?-Ev?“404”??access2.log

說明:上面3句命令前面兩句是在當前目錄下對access1.log文件進行查找,找到那些不包含404的行,把它們放到access2.log中,后面去掉’v’,即是把有404的行放入access2.log

Linux里面grep -v命令作用是什么?

grep命令

grep

1.作用

Linux系統(tǒng)中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。

grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字符表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。

2.格式及主要參數(shù)

grep [options]

主要參數(shù): grep --help可查看

-c:只輸出匹配行的計數(shù)。

-i:不區(qū)分大小寫。

-h:查詢多文件時不顯示文件名。

-l:查詢多文件時只輸出包含匹配字符的文件名。

-n:顯示匹配行及 行號。

-s:不顯示不存在或無匹配文本的錯誤信息。

-v:顯示不包含匹配文本的所有行。

--color=auto :可以將找到的關鍵詞部分加上顏色的顯示。

pattern正則表達式主要參數(shù):

\: 忽略正則表達式中特殊字符的原有含義。

^:匹配正則表達式的開始行。

$: 匹配正則表達式的結束行。

\:從匹配正則表達 式的行開始。

\:到匹配正則表達式的行結束。

[ ]:單個字符,如[A]即A符合要求 。

[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。

.:所有的單個字符。

*:所有字符,長度可以為0。

3.grep命令使用簡單實例

itcast$ grep ‘test’ d*

顯示所有以d開頭的文件中包含 test的行

itcast $ grep ‘test’ aa bb cc

顯示在aa,bb,cc文件中匹配test的行。

itcast $ grep ‘[a-z]\{5\}’ aa

顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行。

itcast $ grep ‘wesest.*\1′ aa

如果west被匹配,則es就被存儲到內存中,并標記為1,然后搜索任意個字符(.*),這些字符后面緊跟著 另外一個es(\1),找到就顯示該行。如果用egrep或grep -E,就不用”\”號進行轉義,直接寫成’w(es)t.*\1′就可以了。

4.grep命令使用復雜實例

明確要求搜索子目錄:

grep -r

或忽略子目錄

grep -d skip

如果有很多輸出時,您可以通過管道將其轉到’less’上閱讀:

itcast$ grep magic /usr/src/Linux/Documentation/* | less

這樣,您就可以更方便地閱讀。

有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,’grep’會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然后再試。

下面還有一些有意思的命令行參數(shù):

grep -i pattern files :不區(qū)分大小寫地搜索。默認情況區(qū)分大小寫,

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 "abc\|xyz" testfile 表示過濾包含abc或xyz的行

grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

grep -n pattern files 即可顯示行號信息

grep -c pattern files 即可查找總行數(shù)

還有些用于搜索的特殊符號:\ 和 \ 分別標注單詞的開始與結尾。

例如:

grep man * 會匹配 ‘Batman’、’manic’、’man’等,

grep ‘\man’ * 匹配’manic’和’man’,但不是’Batman’,

grep ‘\man\’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。

‘^’: 指匹配的字符串在行首,

linux中“grep”和“find”的區(qū)別是什么?

這是兩個不同的命令,關于grep:

Linux系統(tǒng)中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。

而linux下的find

功能:在目錄結構中搜索文件,并執(zhí)行指定的操作。此命令提供了相當多的查找條件,功能很強大。

語法:find 起始目錄 尋找條件 操作

說明:find命令從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件并對之采取相關的操作。

所以簡單點說說,grep是查找匹配條件的行,find是搜索匹配條件的文件。

Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應用程序和網(wǎng)絡協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡為核心的設計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡操作系統(tǒng)。

Linux操作系統(tǒng)誕生于1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬件設備中,比如手機、平板電腦、路由器、視頻游戲控制臺、臺式計算機、大型機和超級計算機。

嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經(jīng)習慣了用Linux來形容整個基于Linux內核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。

全局搜索是什么意思

問題一:手機設置里面的全局搜索啥意思 這就是全局搜索。在桌面那里輸入關鍵字就是可以搜索到手機安裝的軟件或者聯(lián)系人等等。同時可以在網(wǎng)頁上查找。

問題二:手機全局搜是什么意思 應該是搜索手機范圍內的硬件、固件、應用程序的一個快捷方法

問題三:正則表達式中g(全局搜索)和m(多行搜索)有什么區(qū)別 g的作用是匹配串中所有匹配的子串(如果沒有,找到一個之后匹配就結束了)

m的作用是讓^和$匹配每一行的開始和結束(如果沒有,是匹配整個串的開始和結束)

他們兩個沒有什么混淆的地方

問題四:VIVoX6S手機里的全局搜索是什么意思 全局搜索是對手機中的文件、軟件等進行搜索即可立刻找到的一個功能,您可以通過此功能搜索手機中的軟件、歌曲、安裝包、短信等。

問題五:intellij 怎么全局搜索 你好。

根據(jù)你的描述:

intellij 有全局搜索的, ctrl+shift+F,并且支持搜索過濾等。功能很強大。

問題六:myeclipse怎么全局搜索 全局搜索一般用到的地方比較廣,在一個碩大的項目中不可能每個地方都知道,每個詞語都知道在哪里,這是我們可以直接點擊快捷鍵Ctrl+H這樣就會彈出一個框。

然后我們找到第二個File Search在這里可以選擇你要全局查找的文件的類型,輸入要查找到的內容即可,如圖為例就是查找在所有的jsp中有“聯(lián)系電話”這個詞語的。

這樣在下方就會顯示所有帶有“聯(lián)系電話”的jsp文件。是不是很方便,也來試一試吧。

問題七:linux 怎樣用命令全局搜索文件 根據(jù)部分文件名查找方法: 這個方法和在WINDOWS中查找已知的文件名方法是一樣的。不過在Linux中根據(jù)部分文 件名查找文件的方法要比在WINDOWS中的同類查找方法要強大得多。例如我們知道某個 文件包含有srm這3個字母,那么要找到系統(tǒng)中所有包含有這3個字母的文件是可以實現(xiàn) 的,輸入: find /etc -name '*srm*' 這個命令表明了Linux系統(tǒng)將在/etc整個目錄中查找所有的包含有srm這3個字母的文件, 比如 absrmyz, tibc.srm等等符合條件的文件都能顯示出來。如果你還知道這個文件 是由srm 這3個字母打頭的,那么我們還可以省略最前面的星號,命令如下: find/etc -name 'srm*'

問題八:如何用SQL語句全局搜索 模糊查詢呀、 查詢所有、where a like'% 要搜索的值(獲取文本框內容) %' or b同上

問題九:全局搜索怎么顯示出來啊 希望有圖 你好。

這里是百度知道小米企業(yè)平臺,你的問題被推薦進來了,但是我們不知道你說的是什么產(chǎn)品,為了更好的為您服務,請詳細描述。

問題十:webstorm怎么使用全局搜索 步驟:File-Setting 打開設置面板,打開Directories節(jié)點,然后看到有Add Content Root 操作選項,單擊彈出磁盤目錄文件,選擇對應項目或者目錄即可。

本文題目:linux全局搜索的命令 linux全盤搜索關鍵字
URL分享:http://muchs.cn/article30/doescpo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊企業(yè)建站、做網(wǎng)站、響應式網(wǎng)站、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司