簡介
在閩清等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需求定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都營銷網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),閩清網(wǎng)站建設(shè)費(fèi)用合理。
grep (global search regular expression(RE) and print out the line,全面搜索正則表達(dá)式并把行打印出來)是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴(kuò)展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達(dá)式中的元字符表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強(qiáng),可以通過-G、-E、-F命令行選項(xiàng)來使用egrep和fgrep的功能。
grep常用用法
[root@www ~]#grep[-acinv] [--color=auto]'搜尋字符串' filename
選項(xiàng)與參數(shù):-a :將 binary 文件以 text 文件的方式搜尋數(shù)據(jù)-c :計(jì)算找到'搜尋字符串' 的次數(shù)-i :忽略大小寫的不同,所以大小寫視為相同-n :順便輸出行號-v :反向選擇,亦即顯示出沒有'搜尋字符串' 內(nèi)容的那一行!--color=auto :可以將找到的關(guān)鍵詞部分加上顏色的顯示喔!
將/etc/passwd,有出現(xiàn) root 的行取出來
# greproot /etc/passwdroot:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
或# cat/etc/passwd|grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
將/etc/passwd,有出現(xiàn) root 的行取出來,同時(shí)顯示這些行在/etc/passwd的行號
#grep-n root /etc/passwd1:root:x:0:0:root:/root:/bin/bash30:operator:x:11:0:operator:/root:/sbin/nologin
在關(guān)鍵字的顯示方面,grep 可以使用 --color=auto 來將關(guān)鍵字部分使用顏色顯示。 這可是個(gè)很不錯(cuò)的功能?。〉侨绻看问褂?grep 都得要自行加上 --color=auto 又顯的很麻煩~ 此時(shí)那個(gè)好用的 alias 就得來處理一下啦!你可以在 ~/.bashrc 內(nèi)加上這行:『alias grep='grep --color=auto'』再以『 source ~/.bashrc 』來立即生效即可喔! 這樣每次運(yùn)行 grep 他都會(huì)自動(dòng)幫你加上顏色顯示啦
將/etc/passwd,將沒有出現(xiàn) root 的行取出來
#grep-v root /etc/passwdroot:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
將/etc/passwd,將沒有出現(xiàn) root 和nologin的行取出來
#grep-v root /etc/passwd|grep-v nologin
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
用 dmesg 列出核心信息,再以 grep 找出內(nèi)含 eth 那行,要將捉到的關(guān)鍵字顯色,且加上行號來表示:
[root@www ~]# dmesg |grep-n --color=auto'eth'247:eth0: RealTek RTL8139 at0xee846000,00:90:cc:a6:34:84, IRQ10248:eth0: Identified8139chip type'RTL-8139C'294:eth0: link up, 100Mbps, full-duplex, lpa0xC5E1305:eth0: no IPv6 routers present
# 你會(huì)發(fā)現(xiàn)除了 eth 會(huì)有特殊顏色來表示之外,最前面還有行號喔!
在關(guān)鍵字的顯示方面,grep 可以使用 --color=auto 來將關(guān)鍵字部分使用顏色顯示。 這可是個(gè)很不錯(cuò)的功能??!但是如果每次使用 grep 都得要自行加上 --color=auto 又顯的很麻煩~ 此時(shí)那個(gè)好用的 alias 就得來處理一下啦!你可以在 ~/.bashrc 內(nèi)加上這行:『alias grep='grep --color=auto'』再以『 source ~/.bashrc 』來立即生效即可喔! 這樣每次運(yùn)行 grep 他都會(huì)自動(dòng)幫你加上顏色顯示啦
用 dmesg 列出核心信息,再以 grep 找出內(nèi)含 eth 那行,在關(guān)鍵字所在行的前兩行與后三行也一起捉出來顯示
[root@www ~]# dmesg |grep-n -A3 -B2 --color=auto'eth'245-PCI: setting IRQ10as level-triggered246-ACPI: PCI Interrupt0000:00:0e.0[A] - Link [LNKB] ...247:eth0: RealTek RTL8139 at0xee846000,00:90:cc:a6:34:84, IRQ10248:eth0: Identified8139chip type'RTL-8139C'249-input: PC Speaker as /class/input/input2250-ACPI: PCI Interrupt0000:00:01.4[B] - Link [LNKB] ...251-hdb: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache, UDMA(66)
# 如上所示,你會(huì)發(fā)現(xiàn)關(guān)鍵字 247所在的前兩行及248 后三行也都被顯示出來!
# 這樣可以讓你將關(guān)鍵字前后數(shù)據(jù)捉出來進(jìn)行分析啦!
根據(jù)文件內(nèi)容遞歸查找目錄
#grep‘energywise’ *? ? ? ? ? #在當(dāng)前目錄搜索帶'energywise'行的文件
# grep-r ‘energywise’ *? ? ? ? #在當(dāng)前目錄及其子目錄下搜索'energywise'行的文件
# grep-l -r ‘energywise’ *? ? #在當(dāng)前目錄及其子目錄下搜索'energywise'行的文件,但是不顯示匹配的行,只顯示匹配的文件
這幾個(gè)命令很使用,是查找文件的利器。
grep與正規(guī)表達(dá)式
字符類
字符類的搜索:如果我想要搜尋 test 或 taste 這兩個(gè)單字時(shí),可以發(fā)現(xiàn)到,其實(shí)她們有共通的 't?st' 存在~這個(gè)時(shí)候,我可以這樣來搜尋:
[root@www ~]#grep-n't[ae]st' regular_express.txt8:I can't finish the test.9:Oh! The soup taste good.
其實(shí) [] 里面不論有幾個(gè)字節(jié),他都謹(jǐn)代表某『一個(gè)』字節(jié), 所以,上面的例子說明了,我需要的字串是『tast』或『test』兩個(gè)字串而已!
字符類的反向選擇 [^] :如果想要搜索到有 oo 的行,但不想要 oo 前面有 g,如下
[root@www ~]#grep-n'[^g]oo' regular_express.txt2:apple is my favorite food.3:Football game is not use feet only.18:google is the best toolsfor search keyword.19:goooooogle yes!
第 2,3 行沒有疑問,因?yàn)?foo 與 Foo 均可被接受!
但是第 18 行明明有 google 的 goo 啊~別忘記了,因?yàn)樵撔泻竺娉霈F(xiàn)了 tool 的 too ??!所以該行也被列出來~ 也就是說, 18 行里面雖然出現(xiàn)了我們所不要的項(xiàng)目 (goo) 但是由於有需要的項(xiàng)目 (too) , 因此,是符合字串搜尋的喔!
至於第 19 行,同樣的,因?yàn)?goooooogle 里面的 oo 前面可能是 o ,例如: go(ooo)oogle ,所以,這一行也是符合需求的!
字符類的連續(xù):再來,假設(shè)我 oo 前面不想要有小寫字節(jié),所以,我可以這樣寫 [^abcd....z]oo , 但是這樣似乎不怎么方便,由於小寫字節(jié)的 ASCII 上編碼的順序是連續(xù)的, 因此,我們可以將之簡化為底下這樣:
[root@www ~]#grep-n'[^a-z]oo' regular_express.txt3:Football game is not use feet only.
也就是說,當(dāng)我們在一組集合字節(jié)中,如果該字節(jié)組是連續(xù)的,例如大寫英文/小寫英文/數(shù)字等等, 就可以使用[a-z],[A-Z],[0-9]等方式來書寫,那么如果我們的要求字串是數(shù)字與英文呢? 呵呵!就將他全部寫在一起,變成:[a-zA-Z0-9]。
我們要取得有數(shù)字的那一行,就這樣:
[root@www ~]#grep-n'[0-9]' regular_express.txt5:However, this dress is about $3183 dollars.15:You are the best is mean you are the no.1.
行首與行尾字節(jié) ^ $
行首字符:如果我想要讓 the 只在行首列出呢? 這個(gè)時(shí)候就得要使用定位字節(jié)了!我們可以這樣做:
[root@www ~]#grep-n'^the' regular_express.txt12:the symbol'*'is represented as start.
此時(shí),就只剩下第 12 行,因?yàn)橹挥械?12 行的行首是 the 開頭啊~此外, 如果我想要開頭是小寫字節(jié)的那一行就列出呢?可以這樣:
[root@www ~]#grep-n'^[a-z]' regular_express.txt2:apple is my favorite food.4:this dress doesn't fit me.10:motorcycle is cheap than car.12:the symbol'*' is represented as start.18:google is the best toolsfor search keyword.19:goooooogle yes!20:go! go! Let's go.
如果我不想要開頭是英文字母,則可以是這樣:
[root@www ~]#grep-n'^[^a-zA-Z]' regular_express.txt1:"Open Source" is a good mechanism to develop programs.21:# I am VBird
^ 符號,在字符類符號(括號[])之內(nèi)與之外是不同的! 在 [] 內(nèi)代表『反向選擇』,在 [] 之外則代表定位在行首的意義!
那如果我想要找出來,行尾結(jié)束為小數(shù)點(diǎn) (.) 的那一行:
[root@www ~]#grep-n'\.$' regular_express.txt1:"Open Source" is a good mechanism to develop programs.2:apple is my favorite food.3:Football game is not use feet only.4:this dress doesn't fit me.10:motorcycle is cheap than car.11:This window isclear.12:the symbol'*' is represented as start.15:You are the best is mean you are the no.1.16:The world is the same with"glad".17:I like dog.18:google is the best toolsfor search keyword.20:go! go! Let's go.
特別注意到,因?yàn)樾?shù)點(diǎn)具有其他意義(底下會(huì)介紹),所以必須要使用轉(zhuǎn)義字符(\)來加以解除其特殊意義!
找出空白行:
[root@www ~]#grep-n'^$' regular_express.txt22:
因?yàn)橹挥行惺赘形?(^$),所以,這樣就可以找出空白行啦!
任意一個(gè)字節(jié) . 與重復(fù)字節(jié) *
這兩個(gè)符號在正則表達(dá)式的意義如下:
. (小數(shù)點(diǎn)):代表『一定有一個(gè)任意字節(jié)』的意思;* (星號):代表『重復(fù)前一個(gè)字符,0到無窮多次』的意思,為組合形態(tài)
假設(shè)我需要找出 g??d 的字串,亦即共有四個(gè)字節(jié), 起頭是 g 而結(jié)束是 d ,我可以這樣做:
[root@www ~]#grep-n'g..d' regular_express.txt1:"Open Source" is a good mechanism to develop programs.9:Oh! The soup taste good.16:The world is the same with"glad".
因?yàn)閺?qiáng)調(diào) g 與 d 之間一定要存在兩個(gè)字節(jié),因此,第 13 行的 god 與第 14 行的 gd 就不會(huì)被列出來啦!
如果我想要列出有 oo, ooo, oooo 等等的數(shù)據(jù), 也就是說,至少要有兩個(gè)(含) o 以上,該如何是好?
因?yàn)?* 代表的是『重復(fù) 0 個(gè)或多個(gè)前面的 RE 字符』的意義, 因此,『o*』代表的是:『擁有空字節(jié)或一個(gè) o 以上的字節(jié)』,因此,『 grep -n 'o*' regular_express.txt 』將會(huì)把所有的數(shù)據(jù)都列印出來終端上!
當(dāng)我們需要『至少兩個(gè) o 以上的字串』時(shí),就需要 ooo* ,亦即是:
[root@www ~]#grep-n'ooo*' regular_express.txt1:"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 toolsfor search keyword.19:goooooogle yes!
如果我想要字串開頭與結(jié)尾都是 g,但是兩個(gè) g 之間僅能存在至少一個(gè) o ,亦即是 gog, goog, gooog.... 等等,那該如何?
[root@www ~]#grep-n'goo*g' regular_express.txt18:google is the best toolsfor search keyword.19:goooooogle yes!
如果我想要找出 g 開頭與 g 結(jié)尾的行,當(dāng)中的字符可有可無
[root@www ~]#grep-n'g.*g' regular_express.txt1:"Open Source" is a good mechanism to develop programs.14:The gd software is a libraryfor drafting programs.18:google is the best toolsfor search keyword.19:goooooogle yes!20:go! go! Let's go.
因?yàn)槭谴?g 開頭與 g 結(jié)尾,中間任意字節(jié)均可接受,所以,第 1, 14, 20 行是可接受的喔! 這個(gè) .* 的 RE 表示任意字符是很常見的.
如果我想要找出『任意數(shù)字』的行?因?yàn)閮H有數(shù)字,所以就成為:
[root@www ~]#grep-n'[0-9][0-9]*' regular_express.txt5:However, this dress is about $3183 dollars.15:You are the best is mean you are the no.1.
限定連續(xù) RE 字符范圍 {}
我們可以利用 . 與 RE 字符及 * 來配置 0 個(gè)到無限多個(gè)重復(fù)字節(jié), 那如果我想要限制一個(gè)范圍區(qū)間內(nèi)的重復(fù)字節(jié)數(shù)呢?
舉例來說,我想要找出兩個(gè)到五個(gè) o 的連續(xù)字串,該如何作?這時(shí)候就得要使用到限定范圍的字符 {} 了。 但因?yàn)?{ 與 } 的符號在 shell 是有特殊意義的,因此, 我們必須要使用字符 ? \ 來讓他失去特殊意義才行。 至於 {} 的語法是這樣的,假設(shè)我要找到兩個(gè) o 的字串,可以是:
[root@www ~]#grep-n'o\{2\}' regular_express.txt1:"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 toolsfor search ke19:goooooogle yes!
假設(shè)我們要找出 g 后面接 2 到 5 個(gè) o ,然后再接一個(gè) g 的字串,他會(huì)是這樣:
[root@www ~]#grep-n'go\{2,5\}g' regular_express.txt18:google is the best toolsforsearch keyword.
如果我想要的是 2 個(gè) o 以上的 goooo....g 呢?除了可以是 gooo*g ,也可以是:
[root@www ~]#grep-n'go\{2,\}g' regular_express.txt18:google is the best toolsfor search keyword.19:goooooogle yes!
擴(kuò)展grep(grep -E 或者 egrep):
使用擴(kuò)展grep的主要好處是增加了額外的正則表達(dá)式元字符集。
打印所有包含NW或EA的行。如果不是使用egrep,而是grep,將不會(huì)有結(jié)果查出。
#egrep'NW|EA' testfile? ?
northwest? ? ? NW? ? ? Charles Main? ? ? ? 3.0.98334? ? eastern? ? ? ? EA? ? ? TB Savage? ? ? ? ? 4.4.84520
對于標(biāo)準(zhǔn)grep,如果在擴(kuò)展元字符前面加\,grep會(huì)自動(dòng)啟用擴(kuò)展選項(xiàng)-E。
#grep'NW\|EA' testfile
northwest? ? ? NW? ? ? Charles Main? ? ? ? 3.0.98334eastern? ? ? ? EA? ? ? TB Savage? ? ? ? ? 4.4.84520
搜索所有包含一個(gè)或多個(gè)3的行。
#egrep'3+' testfile
# grep-E'3+' testfile
# grep'3\+' testfile? ? ? ?
#這3條命令將會(huì)
northwest? ? ? NW? ? ? Charles Main? ? ? ? ? 3.0.98334western? ? ? ? WE? ? ? Sharon Gray? ? ? ? ? 5.3.97523northeast? ? ? NE? ? ? AM Main Jr.? ? ? ? ? 5.1.94313central? ? ? ? CT? ? ? Ann Stephens? ? ? ? ? 5.7.94513
搜索所有包含0個(gè)或1個(gè)小數(shù)點(diǎn)字符的行。
#egrep'2\.?[0-9]' testfile
# grep-E'2\.?[0-9]' testfile
# grep'2\.\?[0-9]' testfile
#首先含有2字符,其后緊跟著0個(gè)或1個(gè)點(diǎn),后面再是0和9之間的數(shù)字。
western? ? ? ? WE? ? ? Sharon Gray? ? ? ? ? 5.3.97523southwest? ? ? SW? ? ? Lewis Dalsass? ? ? ? 2.7.8218eastern? ? ? ? EA? ? ? TB Savage? ? ? ? ? ? 4.4.84520
搜索一個(gè)或者多個(gè)連續(xù)的no的行。
#egrep'(no)+' testfile
# grep-E'(no)+' testfile
# grep'\(no\)\+' testfile? #3個(gè)命令返回相同結(jié)果,
northwest? ? ? NW? ? ? Charles Main? ? ? ? 3.0.98334northeast? ? ? NE? ? ? AM Main Jr.? ? ? ? 5.1.94313north? ? ? ? ? NO? ? ? Margot Weber? ? ? ? 4.5.8959
不使用正則表達(dá)式
fgrep 查詢速度比grep命令快,但是不夠靈活:它只能找固定的文本,而不是規(guī)則表達(dá)式。
如果你想在一個(gè)文件或者輸出中找到包含星號字符的行
fgrep? '*' /etc/profile
for i in /etc/profile.d/*.sh ; do
或
grep -F '*' /etc/profile
for i in /etc/profile.d/*.sh ; do
顯示所有的環(huán)境變量,如果你想獲取某個(gè)變量的詳細(xì)信息,使用 echo $VARIABLE_NAME .
Example:
whereis使用系統(tǒng)自動(dòng)構(gòu)建的數(shù)據(jù)庫來搜索可執(zhí)行文件,源文件和手冊頁面。
Example:
它在環(huán)境變量PATH指定的目錄中搜索可執(zhí)行文件。此命令將打印可執(zhí)行文件的完整路徑。
Example:
清除窗口上的內(nèi)容。
列出您的文件。 ls 有很多選項(xiàng): -l 列出“長格式”的文件,其中包含文件的確切大小,擁有該文件的人員,有權(quán)查看該文件,以及何時(shí)進(jìn)行上次修改。 -a 列出所有文件,包括隱藏文件。有關(guān)此命令的更多信息,請檢查此鏈接。
Example:
創(chuàng)建或更新您的文件。
Example:
它可以在UNIX或Linux下用于以下目的。
顯示文件的第一部分(用空格移動(dòng)并鍵入q以退出)。
輸出文件的前10行。
輸出最后10行文件。用于-f在文件增長時(shí)輸出附加數(shù)據(jù)。
將文件從一個(gè)位置移動(dòng)到另一個(gè)位置。
filename1 文件的源路徑, filename2 是目標(biāo)路徑。
將文件從一個(gè)位置復(fù)制到另一個(gè)位置。
filename1 文件的源路徑, filename2 是目標(biāo)路徑。
刪除文件。在目錄上使用此命令會(huì)給您顯示一個(gè)錯(cuò)誤: rm: directory: is a directory 。 為了刪除目錄,你必須傳遞 -rf 去遞歸刪除目錄中的所有內(nèi)容。
比較文件,并列出他們的差異。
讓您更改文件的讀取,寫入和執(zhí)行權(quán)限。
壓縮文件。
解壓縮gzip壓縮的文件。
讓你查看gzip壓縮文件,而不需要gunzip它。
打印文件。
查看打印機(jī)隊(duì)列。
Example:
從打印隊(duì)列移除某些內(nèi)容。
awk是處理文本文件最有用的命令。它一行一行地在整個(gè)文件上運(yùn)行。默認(rèn)情況下,它使用空格分隔字段。awk命令最常用的語法是
讓我們采取以下文件 /etc/passwd 。以下是此文件包含的示例數(shù)據(jù):
所以現(xiàn)在讓我們從這個(gè)文件只獲取用戶名。 -F 指定在我們要基于哪個(gè)分隔字段。在我們的例子中 : 。 { print $1 } 意味著打印出第一個(gè)匹配字段。
運(yùn)行上述命令后,您將獲得以下輸出。
有關(guān)如何使用 awk 的更多細(xì)節(jié),請查看以下鏈接。
查找文件內(nèi)的文本。您可以使用grep搜索與一個(gè)或多個(gè)正則表達(dá)式匹配的文本行,并僅輸出匹配的行。
Example:
您還可以通過使用 -i 選項(xiàng)強(qiáng)制grep忽略單詞大小寫。 -r 可用于搜索指定目錄下的所有文件,例如:
-w 只搜索單詞。有關(guān) grep 詳細(xì)信息,請查看以下鏈接。
告訴你一個(gè)文件中有多少行,多少單詞和多少字符。
Example:
7459 是行數(shù), 15915 是單詞數(shù), 398400 是字符數(shù).
用于過濾和轉(zhuǎn)換文本的流編輯器。
example.txt
用連字符替換所有空格
使用"d"替換所有的數(shù)字
排序文本文件的行
example.txt
sort example.txt
隨機(jī)化一個(gè)排序的example.txt
報(bào)告或省略重復(fù)的行
example.txt
只顯示example.txt的唯一行(首先你需要排序,否則看不到重疊)
顯示每行的唯一項(xiàng),并告訴我找到了多少個(gè)實(shí)例
從每行文件中刪除部分。
example.txt
顯示第2,7和9欄的空格作為分隔符
顯示一行文字
顯示 "Hello World"
用字母之間的換行顯示 "Hello World"
簡單的最佳文本格式化程序
example: example.txt (1 line)
將example.txt的行輸出為20個(gè)字符的寬度
翻譯或刪除字符
example.txt
把所有小寫字母變成為大寫
把所有的空格變成換行符
顯示文件的行數(shù)
example.txt
帶行號顯示 example.txt
打印匹配模式的行 - 擴(kuò)展表達(dá)式(別名為:'grep -E')
example.txt
在其中顯示“Lorem”或“dolor”的行
打印匹配模式到的行 - FIXED模式匹配(別名為:'grep -F')
example.txt
在example.txt中找到具體的字符串'(Lorem | doloar)'
生成一個(gè)新的目錄。
執(zhí)行這個(gè),從一個(gè)目錄轉(zhuǎn)移到另外一個(gè)目錄。
將你移動(dòng)到主目錄。此命令接受可選的 dirname ,將你移動(dòng)到該目錄。
告訴你你目前所在的目錄。
ssh (SSH client) 是一個(gè)用來在登錄到遠(yuǎn)程機(jī)器并執(zhí)行的命令的程序。
此命令還接受 -p 可用于連接到特定端口的選項(xiàng)。
返回當(dāng)前登錄用戶名。
允許當(dāng)前登錄的用戶更改其密碼。
顯示您的磁盤配額。
顯示當(dāng)前日期和時(shí)間。
顯示月份的日歷。
顯示當(dāng)前的正常運(yùn)行時(shí)間。
顯示誰在線
Displays information about user.
顯示內(nèi)核信息。
顯示指定命令的手冊。
顯示磁盤使用情況。
顯示文件名中文件和目錄的磁盤使用情況(du -s只給出一個(gè)總數(shù))。
列出您最后登錄的指定用戶。
列出您的進(jìn)程。
使用您所提供的ID殺死(結(jié)束)進(jìn)程。
用名稱殺死所有進(jìn)程。
顯示當(dāng)前活動(dòng)的進(jìn)程。
列出停止的或后臺(tái)工作的Job; 恢復(fù)在后臺(tái)停止的Job。
前臺(tái)化最近的Job。
Brings the most recent job in the foreground.
Pings主機(jī)并輸出結(jié)果。
獲取域的whois信息。
獲取域的DNS信息。
下載文件。
在本地主機(jī)和遠(yuǎn)程主機(jī)之間或兩臺(tái)遠(yuǎn)程主機(jī)之間傳輸文件。
從本地主機(jī)復(fù)制到遠(yuǎn)程主機(jī)
從遠(yuǎn)程主機(jī)復(fù)制到本地主機(jī)
此命令還接受 -P 選項(xiàng)可用于連接到特定的端口。
在bash中你將編寫第一行腳本文件,被叫做 shebang 。任何腳本中的這一行來確定腳本的執(zhí)行能力,如獨(dú)立的可執(zhí)行文件,而不是在終端中預(yù)先鍵入sh,bash,python,php等。
Example:
上面的一行創(chuàng)建一個(gè)變量str并給它賦值“hello world”。通過 $ 放在變量名的開頭來檢索變量的值。
Example:
像其他語言一樣,bash也有數(shù)組。數(shù)組是包含多個(gè)值的變量。數(shù)組的大小沒有最大限制。bash中的數(shù)組為零。第一個(gè)元素被索引為元素0.在bash中創(chuàng)建數(shù)組有幾種方法。以下給出了哪些。
Examples:
要在特定索引處顯示值,請使用以下語法:
如果沒有提供索引,則假定為數(shù)組元素0。要了解數(shù)組中有多少值,請使用以下語法:
Bash也支持三元條件。下面是一些例子。
檢查一些關(guān)于如何操作字符串的語法
Example:
當(dāng)您運(yùn)行上述示例時(shí),該hello函數(shù)將輸出“world!”。上述兩個(gè)功能 hello 和 say 是相同的。主要區(qū)別是功能 say 。此功能打印其接收到的第一個(gè)參數(shù)。函數(shù)內(nèi)的參數(shù)以與給腳本的參數(shù)相同的方式進(jìn)行處理。
bash中的條件語句與其他編程語言相似。條件有許多形式,如最基本的形式是 if 表達(dá)式 then 語句,其中語句只有在表達(dá)式為真時(shí)執(zhí)行。
有時(shí),如果條件變得混亂,所以你可以使用相同的條件 case statements 。
Expression Examples:
bash 中有三種不同類型的循環(huán)。 for , while 和 until .
for 語法:
while 語法:
until 語法:
bash_profile 可以通過運(yùn)行后面的命令打開。 nano ~/.bash_profile
nano ~/.bashrc
source ~/.bashrc
cd hotellogs
您可以通過傳遞不同的選項(xiàng)來輕松地調(diào)試bash腳本bash。例如-n,不會(huì)運(yùn)行命令并僅檢查語法錯(cuò)誤。-vecho命令在運(yùn)行它們之前。-x命令行處理后的echo命令。
進(jìn)行Linux系統(tǒng)維護(hù)的時(shí)候,想要在文本中快速搜索到你需要的東西,grep命令是非常不錯(cuò)的選擇,它主要用于查找文件里符合條件的字符串,從而節(jié)省時(shí)間、提高工作效率。那么Linux系統(tǒng)中g(shù)rep命令如何使用?我們一起來看看詳細(xì)的內(nèi)容介紹。
Linux grep命令用于查找文件里符合條件的字符串。
grep指令用于查找內(nèi)容包含指定的范本樣式的文件,如果發(fā)現(xiàn)某文件的內(nèi)容符合所指定的范本樣式,預(yù)設(shè)grep指令會(huì)把含有范本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為-,則grep指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)。
語法
grep
[-abcEFGhHilLnqrsvVwxy][-A顯示行數(shù)][-B顯示列數(shù)][-C顯示列數(shù)][-d進(jìn)行動(dòng)作][-e范本樣式][-f范本文件][--help][范本樣式][文件或目錄...]
參數(shù)
-a或--text:不要忽略二進(jìn)制的數(shù)據(jù)。
-A顯示行數(shù)或--after-context=顯示行數(shù):除了顯示符合范本樣式的那一列之外,并顯示該行之后的內(nèi)容。
-b或--byte-offset:在顯示符合樣式的那一行之前,標(biāo)示出該行第一個(gè)字符的編號。
-B顯示行數(shù)或--before-context=顯示行數(shù):除了顯示符合樣式的那一行之外,并顯示該行之前的內(nèi)容。
-c或--count:計(jì)算符合樣式的列數(shù)。
-C顯示行數(shù)或--context=顯示行數(shù)或-顯示行數(shù):除了顯示符合樣式的那一行之外,并顯示該行之前后的內(nèi)容。
-d動(dòng)作或--directories=動(dòng)作:當(dāng)指定要查找的是目錄而非文件時(shí),必須使用這項(xiàng)參數(shù),否則grep指令將回報(bào)信息并停止動(dòng)作。
-e范本樣式或--regexp=范本樣式:指定字符串做為查找文件內(nèi)容的樣式。
-E或--extended-regexp:將樣式為延伸的正則表達(dá)式來使用。
-f規(guī)則文件或--file=規(guī)則文件:指定規(guī)則文件,其內(nèi)容含有一個(gè)或多個(gè)規(guī)則樣式,讓grep查找符合規(guī)則條件的文件內(nèi)容,格式為每行一個(gè)規(guī)則樣式。
-F或--fixed-regexp:將樣式視為固定字符串的列表。
-G或--basic-regexp:將樣式視為普通的表示法來使用。
-h或--no-filename:在顯示符合樣式的那一行之前,不標(biāo)示該行所屬的文件名稱。
-H或--with-filename:在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。
………………
參數(shù)較多,就不為大家一一講解了!
grep命令
grep
1.作用
Linux系統(tǒng)中g(shù)rep命令是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達(dá)式版本,它的使用權(quán)限是所有用戶。
grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴(kuò)展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達(dá)式中的元字符表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強(qiáng),可以通過-G、-E、-F命令行選項(xiàng)來使用egrep和fgrep的功能。
2.格式及主要參數(shù)
grep [options]
主要參數(shù): grep --help可查看
-c:只輸出匹配行的計(jì)數(shù)。
-i:不區(qū)分大小寫。
-h:查詢多文件時(shí)不顯示文件名。
-l:查詢多文件時(shí)只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行。
--color=auto :可以將找到的關(guān)鍵詞部分加上顏色的顯示。
pattern正則表達(dá)式主要參數(shù):
\: 忽略正則表達(dá)式中特殊字符的原有含義。
^:匹配正則表達(dá)式的開始行。
$: 匹配正則表達(dá)式的結(jié)束行。
\:從匹配正則表達(dá) 式的行開始。
\:到匹配正則表達(dá)式的行結(jié)束。
[ ]:單個(gè)字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的單個(gè)字符。
*:所有字符,長度可以為0。
3.grep命令使用簡單實(shí)例
itcast$ grep ‘test’ d*
顯示所有以d開頭的文件中包含 test的行
itcast $ grep ‘test’ aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
itcast $ grep ‘[a-z]\{5\}’ aa
顯示所有包含每個(gè)字符串至少有5個(gè)連續(xù)小寫字符的字符串的行。
itcast $ grep ‘wesest.*\1′ aa
如果west被匹配,則es就被存儲(chǔ)到內(nèi)存中,并標(biāo)記為1,然后搜索任意個(gè)字符(.*),這些字符后面緊跟著 另外一個(gè)es(\1),找到就顯示該行。如果用egrep或grep -E,就不用”\”號進(jìn)行轉(zhuǎn)義,直接寫成’w(es)t.*\1′就可以了。
4.grep命令使用復(fù)雜實(shí)例
明確要求搜索子目錄:
grep -r
或忽略子目錄
grep -d skip
如果有很多輸出時(shí),您可以通過管道將其轉(zhuǎn)到’less’上閱讀:
itcast$ grep magic /usr/src/Linux/Documentation/* | less
這樣,您就可以更方便地閱讀。
有一點(diǎn)要注意,您必需提供一個(gè)文件過濾方式(搜索全部文件的話用 *)。如果您忘了,’grep’會(huì)一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然后再試。
下面還有一些有意思的命令行參數(shù):
grep -i pattern files :不區(qū)分大小寫地搜索。默認(rèn)情況區(qū)分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個(gè)單詞,而不是字符串的一部分(如匹配’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ù)
還有些用于搜索的特殊符號:\ 和 \ 分別標(biāo)注單詞的開始與結(jié)尾。
例如:
grep man * 會(huì)匹配 ‘Batman’、’manic’、’man’等,
grep ‘\man’ * 匹配’manic’和’man’,但不是’Batman’,
grep ‘\man\’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’: 指匹配的字符串在行首,
Linux中g(shù)rep與fgrep命令的使用,兩個(gè)命令的使用都與文本的搜索與匹配相關(guān),是Linux入門學(xué)習(xí)中的基礎(chǔ)知識(shí),接下來是我為大家收集的Linux文本匹配命令grep與fgrep使用全解,希望能幫到大家。
Linux文本匹配命令grep與fgrep使用全解
grep
grep (global search regular expression(RE) and print out the line,全面搜索正則表達(dá)式并把行打印出來)是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴(kuò)展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達(dá)式中的元字符表示回其自身的字面意義,不再特殊。Linux使用GNU版本的grep。它功能更強(qiáng),可以通過-G、-E、-F命令行選項(xiàng)來使用egrep和fgrep的功能。
grep的工作方式是這樣的,它在一個(gè)或多個(gè)文件中搜索字符串模板。如果模板包括空格,則必須被引用,模板后的所有字符串被看作文件名。搜索的結(jié)果被送到屏幕,不影響原文件內(nèi)容。
grep可用于shell腳本,因?yàn)間rep通過返回一個(gè)狀態(tài)值來說明搜索的狀態(tài),如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進(jìn)行一些自動(dòng)化的文本處理工作。
grep --help
匹配模式選擇:
-E, --extended-regexp 擴(kuò)展正則表達(dá)式egrep
-F, --fixed-strings 一個(gè)換行符分隔的字符串的集合fgrep
-G, --basic-regexp 基本正則
-P, --perl-regexp 調(diào)用的perl正則
-e, --regexp=PATTERN 后面根正則模式,默認(rèn)無
-f, --file=FILE 從文件中獲得匹配模式
-i, --ignore-case 不區(qū)分大小寫
-w, --word-regexp 匹配整個(gè)單詞
-x, --line-regexp 匹配整行
-z, --null-data 一個(gè) 0 字節(jié)的數(shù)據(jù)行,但不是空行
雜項(xiàng):
-s, --no-messages 不顯示錯(cuò)誤信息
-v, --invert-match 顯示不匹配的行
-V, --version 顯示版本號
--help 顯示幫助信息
--mmap use memory-mapped input if possible
輸入控制:
-m, --max-count=NUM 匹配的最大數(shù)
-b, --byte-offset 打印匹配行前面打印該行所在的塊號碼。
-n, --line-number 顯示的加上匹配所在的行號
--line-buffered 刷新輸出每一行
-H, --with-filename 當(dāng)搜索多個(gè)文件時(shí),顯示匹配文件名前綴
-h, --no-filename 當(dāng)搜索多個(gè)文件時(shí),不顯示匹配文件名前綴
--label=LABEL print LABEL as filename for standard input
-o, --only-matching 只顯示一行中匹配PATTERN 的部分
-q, --quiet, --silent 不顯示任何東西
--binary-files=TYPE 假定二進(jìn)制文件的TYPE 類型;
TYPE 可以是`binary', `text', 或`without-match'
-a, --text 匹配二進(jìn)制的東西
-I 不匹配二進(jìn)制的東西
-d, --directories=ACTION 目錄操作,讀取,遞歸,跳過
-D, --devices=ACTION 設(shè)置對設(shè)備,F(xiàn)IFO,管道的操作,讀取,跳過
-R, -r, --recursive 遞歸調(diào)用
--include=PATTERN 只查找匹配FILE_PATTERN 的文件
--exclude=PATTERN 跳過匹配FILE_PATTERN 的文件和目錄
--exclude-from=FILE 跳過所有除FILE 以外的文件
-L, --files-without-match 匹配多個(gè)文件時(shí),顯示不匹配的文件名
-l, --files-with-matches 匹配多個(gè)文件時(shí),顯示匹配的文件名
-c, --count 顯示匹配了多少次
-Z, --null 在FILE 文件最后打印空字符
文件控制:
-B, --before-context=NUM 打印匹配本身以及前面的幾個(gè)行由NUM控制
-A, --after-context=NUM 打印匹配本身以及隨后的幾個(gè)行由NUM控制
-C, --context=NUM 打印匹配本身以及隨后,前面的幾個(gè)行由NUM控制
-NUM 根-C的用法一樣的
--color[=WHEN],
--colour[=WHEN] 使用標(biāo)志高亮匹配字串;
-U, --binary 使用標(biāo)志高亮匹配字串;
-u, --unix-byte-offsets 當(dāng)CR 字符不存在,報(bào)告字節(jié)偏移(MSDOS 模式)
例:
測試文件
復(fù)制代碼
代碼如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa
DADddd:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/home/ftp:/bin/false
nobody:$:99:99:nobody:/:/bin/false
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
http:x:33:33::/srv/http:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
hal:x:82:82:HAL daemon:/:/bin/false
mysql:x:89:89::/var/lib/mysql:/bin/false
aaa:x:1001:1001::/home/aaa:/bin/bash
ba:x:1002:1002::/home/zhangy:/bin/bash
test:x:1003:1003::/home/test:/bin/bash
@zhangying:*:1004:1004::/home/test:/bin/bash
policykit:x:102:1005:Po
a,匹配含有root的行
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# grep root test
root:x:0:0:root:/root:/bin/bash
b,匹配以root開頭或者以zhang開頭的行,注意反斜杠
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# cat test |grep '^\(root\|zhang\)'
root:x:0:0:root:/root:/bin/bash
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
c,匹配以root開頭或者以zhang開頭的行,注意反斜杠,根上面一個(gè)例子一樣,-e默認(rèn)是省去的
[root@krlcgcms01 test]# cat test |grep -e '^\(root\|zhang\)'
root:x:0:0:root:/root:/bin/bash
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
d,匹配以zhang開頭,只含有字母
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# echo 'zhangying' |grep '^zhang[a-z]*$'
zhangying
e,匹配以bin開頭的行,用的egrep,在這里可以換成-F,-G
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# cat test |grep -E '^bin'
bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa
f,在匹配的行前面加上該行在文件中,或者輸出中所在的行號
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# cat test|grep -n zhangy
7:zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
13:ba:x:1002:1002::/home/zhangy:/bin/bash
15:@zhangying:*:1004:1004::/home/test:/bin/bash
g,不匹配以bin開頭的行,并顯示行號
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# cat test|grep -nv '^bin'
root:x:0:0:root:/root:/bin/bash
DADddd:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/home/ftp:/bin/false
nobody:$:99:99:nobody:/:/bin/false
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
http:x:33:33::/srv/http:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
hal:x:82:82:HAL daemon:/:/bin/false
mysql:x:89:89::/var/lib/mysql:/bin/false
aaa:x:1001:1001::/home/aaa:/bin/bash
ba:x:1002:1002::/home/zhangy:/bin/bash
test:x:1003:1003::/home/test:/bin/bash
@zhangying:*:1004:1004::/home/test:/bin/bash
policykit:x:102:1005:Po
h,顯示匹配的個(gè)數(shù),不顯示內(nèi)容
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# cat test|grep -c zhang
3
i,匹配system,沒有加-i沒有匹配到東西。
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# grep system test
[root@krlcgcms01 test]# grep -ni system test
9:dbus:x:81:81:System message bus:/:/bin/false
j,匹配zhan沒有匹配到東西,匹配zhangy能匹配到,因?yàn)樵趖est文件中,有zhangy這個(gè)單詞
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# cat test|grep -w zhan
[root@krlcgcms01 test]# cat test|grep -w zhangy
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
ba:x:1002:1002::/home/zhangy:/bin/bash
k,在這里-x后面東西,和輸出中的整行相同時(shí),才會(huì)輸出
[root@krlcgcms01 test]# echo "aaaaaa" |grep -x aaa
[root@krlcgcms01 test]# echo "aaaa" |grep -x aaaa
aaaa
l,最多只匹配一次,如果把-m 1去掉的話,會(huì)有三個(gè)
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# cat test |grep -m 1 zhang
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
m,匹配行的前面顯示塊號,這個(gè)塊號是干什么的,不知道,有誰知道可否告訴我一下
復(fù)制代碼
代碼如下:
[apacheuser@krlcgcms01 test]$ cat test |grep -b zha
241:zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
480:ba:x:1002:1002::/home/zhangy:/bin/bash
558:@zhangying:*:1004:1004::/home/test:/bin/bash
n,多文件匹配時(shí),在匹配的行前面加上文件名
復(fù)制代碼
代碼如下:
[apacheuser@krlcgcms01 test]$ grep -H 'root' test test2 testbak
test:root:x:0:0:root:/root:/bin/bash
test2:root
testbak:root:x:0:0:root:/root:/bin/bash
o,多文件匹配時(shí),在匹配的行前面不加上文件名
復(fù)制代碼
代碼如下:
[apacheuser@krlcgcms01 test]$ grep -h 'root' test test2 testbak
root:x:0:0:root:/root:/bin/bash
root
root:x:0:0:root:/root:/bin/bash
p,多文件匹配時(shí),顯示匹配文件的文件名
復(fù)制代碼
代碼如下:
[apacheuser@krlcgcms01 test]$ grep -l 'root' test test2 testbak DAta
test
test2
testbak
q,沒有-o時(shí),有一行匹配,這一行里面有3個(gè)root,加上-o后,這個(gè)3個(gè)root就出來了
復(fù)制代碼
代碼如下:
[apacheuser@krlcgcms01 test]$ grep 'root' test
root:x:0:0:root:/root:/bin/bash
[apacheuser@krlcgcms01 test]$ grep -o 'root' test
root
root
root
r,遞歸顯示匹配的內(nèi)容,在test目錄下面建個(gè)mytest目錄,copy test目錄下面的test文件到mytest下面,能看到上面的結(jié)果
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# grep test -R /tmp/test/mytest
/tmp/test/mytest/test:test:x:1003:1003::/home/test:/bin/bash
/tmp/test/mytest/test:@zhangying:*:1004:1004::/home/test:/bin/bash
s,顯示匹配root后面的3行
復(fù)制代碼
代碼如下:
[root@krlcgcms01 test]# cat test |grep -A 3 root
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa
daemon:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
fgrep
用法: fgrep [選項(xiàng)]... PATTERN [FILE]...
在每個(gè) FILE 或是標(biāo)準(zhǔn)輸入中查找 PATTERN。
PATTERN 是一組由斷行符分隔的定長字符串。
例如: fgrep -i 'hello world' menu.h main.c
正則表達(dá)式選擇與解釋:
-e, --regexp=PATTERN 用 PATTERN 來進(jìn)行匹配操作
-f, --file=FILE 從 FILE 中取得 PATTERN
-i, --ignore-case 忽略大小寫
-w, --word-regexp 強(qiáng)制 PATTERN 僅完全匹配字詞
-x, --line-regexp 強(qiáng)制 PATTERN 僅完全匹配一行
-z, --null-data 一個(gè) 0 字節(jié)的數(shù)據(jù)行,但不是空行
雜項(xiàng):
-s, --no-messages 不顯示錯(cuò)誤信息
-v, --invert-match 選中不匹配的行
-V, --version 顯示版本信息并退出
--help 顯示此幫助并退出
--mmap 忽略向后兼容性
Output control:
-m, --max-count=NUM 匹配的最大數(shù)
-b, --byte-offset 打印匹配行前面打印該行所在的塊號碼
-n, --line-number 顯示的加上匹配所在的行號
--line-buffered 刷新輸出每一行
-H, --with-filename 當(dāng)搜索多個(gè)文件時(shí),顯示匹配文件名前綴
-h, --no-filename 當(dāng)搜索多個(gè)文件時(shí),不顯示匹配文件名前綴
--label=LABEL use LABEL as the standard input file name prefix
-o, --only-matching 只顯示一行中匹配PATTERN 的部分
-q, --quiet, --silent 不顯示所有輸出
--binary-files=TYPE 假定二進(jìn)制文件的TYPE 類型;
TYPE 可以是`binary', `text', 或`without-match'
-a, --text 等同于 --binary-files=text
-I 等同于 --binary-files=without-match
-d, --directories=ACTION 操作目錄的方式;
ACTION 可以是`read', `recurse',或`skip'
-D, --devices=ACTION 操作設(shè)備、先入先出隊(duì)列、套接字的方式;
ACTION 可以是`read'或`skip'
-R, -r, --recursive 等同于 --directories=recurse
--include=FILE_PATTERN 只查找匹配FILE_PATTERN 的文件
--exclude=FILE_PATTERN 跳過匹配FILE_PATTERN 的文件和目錄
--exclude-from=FILE 跳過所有除FILE 以外的文件
--exclude-dir=PATTERN 跳過所有匹配PATTERN 的目錄。
-L, --files-without-match 只打印不匹配FILEs 的文件名
-l, --files-with-matches 只打印匹配FILES 的文件名
-c, --count 只打印每個(gè)FILE 中的匹配行數(shù)目
-T, --initial-tab 行首tabs 分隔(如有必要)
-Z, --null 在FILE 文件最后打印空字符
文件控制:
-B, --before-context=NUM 打印以文本起始的NUM 行
-A, --after-context=NUM 打印以文本結(jié)尾的NUM 行
-C, --context=NUM 打印輸出文本NUM 行
-NUM 等同于 --context=NUM
--color[=WHEN],
--colour[=WHEN] 使用標(biāo)志高亮匹配字串;
WHEN 可以是`always', `never'或`auto'
-U, --binary 不要清除行尾的CR 字符(MSDOS 模式)
-u, --unix-byte-offsets 當(dāng)CR 字符不存在,報(bào)告字節(jié)偏移(MSDOS 模式)
‘fgrep’已不再使用了;請用 ‘grep -F’代替。
不帶 FILE 參數(shù),或是 FILE 為 -,將讀取標(biāo)準(zhǔn)輸入。如果少于兩個(gè) FILE 參數(shù)
就要默認(rèn)使用 -h 參數(shù)。如果選中任意一行,那退出狀態(tài)為 0,否則為 1;
如果有錯(cuò)誤產(chǎn)生,且未指定 -q 參數(shù),那退出狀態(tài)為 2。
例:
復(fù)制代碼
代碼如下:
[root@linux test]# cat abc.sh |fgrep a #匹配含有a的
看了“Linux文本匹配命令grep與fgrep使用全解”還想看:
1. linux grep命令詳解
2. 全面解析Linux的grep命令中正則表達(dá)式的用法
3. Linux下如何使用grep命令搜索多個(gè)單詞
4. 開發(fā)人員常用什么linux命令
本文標(biāo)題:linux命令fixed 查看文件大小的Linux命令
網(wǎng)站網(wǎng)址:http://muchs.cn/article34/docccpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、用戶體驗(yàn)、關(guān)鍵詞優(yōu)化、建站公司、面包屑導(dǎo)航、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)