国产成人精品999视频&日本一区二区亚洲人妻精品&久久久精品国产99久久精&99热这里只有成人精品国产&精品国产剧情av一区二区&成人亚洲精品久久久久app&国产精品美女高潮抽搐A片

Grep 備忘清單

本備忘單旨在快速提醒使用命令行程序 grep 所涉及的主要概念,并假設(shè)您已經(jīng)了解其用法。

入門

使用

搜索標(biāo)準(zhǔn)輸出(即文本流)

$ grep [options] search_string

在文件中搜索確切的字符串:

$ grep [options] search_string path/to/file

打印 myfile.txt 中包含字符串“mellon”的行

$ grep 'mellon' myfile.txt

文件名中接受通配符。

選項(xiàng)示例

選項(xiàng)示例說明
-igrep -i ^DA demo.txt忘記區(qū)分大小寫
-wgrep -w "of" demo.txt僅搜索完整的單詞
-Agrep -A 3 'Exception' error.log匹配字符串后顯示 3 行
-Bgrep -B 4 'Exception' error.log在匹配字符串前顯示 4 行
-Cgrep -C 5 'Exception' error.log在匹配字符串周圍顯示 5 行
-rgrep -r 'github.io' /var/log/nginx/遞歸搜索 (在子目錄內(nèi))
-vgrep -v 'warning' /var/log/syslog返回所有與模式不匹配的行
-egrep -e '^al' filename使用正則表達(dá)式 (以'al'開頭的行)
-Egrep -E 'ja(s|cks)on' filename擴(kuò)展正則表達(dá)式 (包含 jason 或 jackson 的行)
-cgrep -c 'error' /var/log/syslog計(jì)算匹配數(shù)
-lgrep -l 'robot' /var/log/*打印匹配文件的名稱
-ogrep -o search_string filename只顯示字符串的匹配部分
-ngrep -n "go" demo.txt顯示匹配的行號(hào)

Grep 正則表達(dá)式

參考

有關(guān)更復(fù)雜的要求,請(qǐng)參閱完整版的正則表達(dá)式備忘單。

通配符(Wildcards)

:-:-
.任何字符
?可選且只能出現(xiàn)一次
*可選的,可以多次出現(xiàn)
+必需并且可以多次出現(xiàn)

量詞(Quantifiers)

:-:-
{n}前一項(xiàng)恰好出現(xiàn) n 次
{n,}上一個(gè)項(xiàng)目出現(xiàn) n 次或更多
{,m}上一個(gè)項(xiàng)目最多出現(xiàn) n 次
{n,m}上一項(xiàng)出現(xiàn)在 n 到 m 次之間

POSIX

:-:-
[:alpha:]任何大小寫字母
[:digit:]任何數(shù)字
[:alnum:]任何大小寫字母或數(shù)字
[:space:]任何空格

字符串

:-:-
[A-Z-a-z]任何大小寫字母
[0-9]任何數(shù)字
[0-9-A-Z-a-z]任何大小寫字母或數(shù)字

位置

:-:-
^行的開頭
$行結(jié)束
^$空行
\<詞的開頭
\>詞尾

更多示例

搜索命令行歷史記錄

history | grep git

輸入過 git 命令的記錄

搜索多個(gè)文件并查找匹配文本在哪些文件中

grep -l "text" file1 file2 file3...

多級(jí)目錄中對(duì)文本進(jìn)行遞歸搜索

grep "text" . -r -n

. 表示當(dāng)前目錄。

搜索結(jié)果中包括或者排除指定文件

# 目錄中所有的 .php 和 .html 文件中
# 遞歸搜索字符 "main()"
grep "main()" . -r --include *.{php,html}

# 在搜索結(jié)果中排除所有 README 文件
grep "main()" . -r --exclude "README"

# 在搜索結(jié)果中排除 filelist 文件列表里的文件
grep "main()" . -r --exclude-from filelist

輸出包含匹配字符串的行數(shù) -n 選項(xiàng)

grep "text" -n file_name
# 或
cat file_name | grep "text" -n

#多個(gè)文件
grep "text" -n file_1 file_2

忽略匹配樣式中的字符大小寫

echo "hello world" | grep -i "HELLO"
# hello

統(tǒng)計(jì)文件或文本中包含匹配字符串的行數(shù) -c 選項(xiàng)

grep -c "text" file_name

另見