Linux下Grep命令的详细使用方法? 谁能告诉我linux操作系统中grep命令的详细使用?

Linux\u4e0bGrep\u547d\u4ee4\u7684\u8be6\u7ec6\u4f7f\u7528\u65b9\u6cd5

linux grep\u547d\u4ee4

1.\u4f5c\u7528
Linux\u7cfb\u7edf\u4e2dgrep\u547d\u4ee4\u662f\u4e00\u79cd\u5f3a\u5927\u7684\u6587\u672c\u641c\u7d22\u5de5\u5177\uff0c\u5b83\u80fd\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u641c\u7d22\u6587\u672c\uff0c\u5e76\u628a\u5339 \u914d\u7684\u884c\u6253\u5370\u51fa\u6765\u3002grep\u5168\u79f0\u662fGlobal Regular Expression Print\uff0c\u8868\u793a\u5168\u5c40\u6b63\u5219\u8868\u8fbe\u5f0f\u7248\u672c\uff0c\u5b83\u7684\u4f7f\u7528\u6743\u9650\u662f\u6240\u6709\u7528\u6237\u3002
2.\u683c\u5f0f
grep [options]
3.\u4e3b\u8981\u53c2\u6570
[options]\u4e3b\u8981\u53c2\u6570\uff1a
\uff0dc\uff1a\u53ea\u8f93\u51fa\u5339\u914d\u884c\u7684\u8ba1\u6570\u3002
\uff0dI\uff1a\u4e0d\u533a\u5206\u5927 \u5c0f\u5199(\u53ea\u9002\u7528\u4e8e\u5355\u5b57\u7b26)\u3002
\uff0dh\uff1a\u67e5\u8be2\u591a\u6587\u4ef6\u65f6\u4e0d\u663e\u793a\u6587\u4ef6\u540d\u3002
\uff0dl\uff1a\u67e5\u8be2\u591a\u6587\u4ef6\u65f6\u53ea\u8f93\u51fa\u5305\u542b\u5339\u914d\u5b57\u7b26\u7684\u6587\u4ef6\u540d\u3002
\uff0dn\uff1a\u663e\u793a\u5339\u914d\u884c\u53ca \u884c\u53f7\u3002
\uff0ds\uff1a\u4e0d\u663e\u793a\u4e0d\u5b58\u5728\u6216\u65e0\u5339\u914d\u6587\u672c\u7684\u9519\u8bef\u4fe1\u606f\u3002
\uff0dv\uff1a\u663e\u793a\u4e0d\u5305\u542b\u5339\u914d\u6587\u672c\u7684\u6240\u6709\u884c\u3002
pattern\u6b63\u5219\u8868\u8fbe\u5f0f\u4e3b\u8981\u53c2\u6570\uff1a
\\uff1a \u5ffd\u7565\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7279\u6b8a\u5b57\u7b26\u7684\u539f\u6709\u542b\u4e49\u3002
^\uff1a\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5f00\u59cb\u884c\u3002
$: \u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u7ed3\u675f\u884c\u3002
\<\uff1a\u4ece\u5339\u914d\u6b63\u5219\u8868\u8fbe \u5f0f\u7684\u884c\u5f00\u59cb\u3002
\>\uff1a\u5230\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u884c\u7ed3\u675f\u3002
[ ]\uff1a\u5355\u4e2a\u5b57\u7b26\uff0c\u5982[A]\u5373A\u7b26\u5408\u8981\u6c42 \u3002
[ - ]\uff1a\u8303\u56f4\uff0c\u5982[A-Z]\uff0c\u5373A\u3001B\u3001C\u4e00\u76f4\u5230Z\u90fd\u7b26\u5408\u8981\u6c42 \u3002
\u3002\uff1a\u6240\u6709\u7684\u5355\u4e2a\u5b57\u7b26\u3002
* \uff1a\u6709\u5b57\u7b26\uff0c\u957f\u5ea6\u53ef\u4ee5\u4e3a0\u3002
4.grep\u547d\u4ee4\u4f7f\u7528\u7b80\u5355\u5b9e\u4f8b
$ grep \u2018test\u2019 d*
\u663e\u793a\u6240\u6709\u4ee5d\u5f00\u5934\u7684\u6587\u4ef6\u4e2d\u5305\u542b test\u7684\u884c\u3002
$ grep \u2018test\u2019 aa bb cc
\u663e\u793a\u5728aa\uff0cbb\uff0ccc\u6587\u4ef6\u4e2d\u5339\u914dtest\u7684\u884c\u3002
$ grep \u2018[a-z]\{5\}\u2019 aa
\u663e\u793a\u6240\u6709\u5305\u542b\u6bcf\u4e2a\u5b57\u7b26\u4e32\u81f3\u5c11\u67095\u4e2a\u8fde\u7eed\u5c0f\u5199\u5b57\u7b26\u7684\u5b57\u7b26\u4e32\u7684\u884c\u3002
$ grep \u2018w\(es\)t.*\1\u2032 aa
\u5982\u679cwest\u88ab\u5339\u914d\uff0c\u5219es\u5c31\u88ab\u5b58\u50a8\u5230\u5185\u5b58\u4e2d\uff0c\u5e76\u6807\u8bb0\u4e3a1\uff0c\u7136\u540e\u641c\u7d22\u4efb\u610f\u4e2a\u5b57\u7b26(.*)\uff0c\u8fd9\u4e9b\u5b57\u7b26\u540e\u9762\u7d27\u8ddf\u7740 \u53e6\u5916\u4e00\u4e2aes(\1)\uff0c\u627e\u5230\u5c31\u663e\u793a\u8be5\u884c\u3002\u5982\u679c\u7528egrep\u6216grep -E\uff0c\u5c31\u4e0d\u7528\u201d\\u201d\u53f7\u8fdb\u884c\u8f6c\u4e49\uff0c\u76f4\u63a5\u5199\u6210\u2019w(es)t.*\1\u2032\u5c31\u53ef\u4ee5\u4e86\u3002
5.grep\u547d\u4ee4\u4f7f\u7528\u590d\u6742\u5b9e\u4f8b
\u5047\u8bbe\u60a8\u6b63\u5728\u2019/usr/src/Linux/Doc\u2019\u76ee\u5f55\u4e0b\u641c\u7d22\u5e26\u5b57\u7b26 \u4e32\u2019magic\u2019\u7684\u6587\u4ef6\uff1a
$ grep magic /usr/src/Linux/Doc/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
\u5176\u4e2d\u6587\u4ef6\u2019sysrp.txt\u2019\u5305\u542b\u8be5\u5b57\u7b26\u4e32\uff0c\u8ba8\u8bba\u7684\u662f SysRQ \u7684\u529f\u80fd\u3002
\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u2019grep\u2019\u53ea\u641c\u7d22\u5f53\u524d\u76ee\u5f55\u3002\u5982\u679c \u6b64\u76ee\u5f55\u4e0b\u6709\u8bb8\u591a\u5b50\u76ee\u5f55\uff0c\u2019grep\u2019\u4f1a\u4ee5\u5982\u4e0b\u5f62\u5f0f\u5217\u51fa\uff1a
grep: sound: Is a directory
\u8fd9\u53ef\u80fd\u4f1a\u4f7f\u2019grep\u2019 \u7684\u8f93\u51fa\u96be\u4e8e\u9605\u8bfb\u3002\u8fd9\u91cc\u6709\u4e24\u79cd\u89e3\u51b3\u7684\u529e\u6cd5\uff1a
\u660e\u786e\u8981\u6c42\u641c\u7d22\u5b50\u76ee\u5f55\uff1agrep -r
\u6216\u5ffd\u7565\u5b50\u76ee\u5f55\uff1agrep -d skip
\u5982\u679c\u6709\u5f88\u591a \u8f93\u51fa\u65f6\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u7ba1\u9053\u5c06\u5176\u8f6c\u5230\u2019less\u2019\u4e0a\u9605\u8bfb\uff1a
$ grep magic /usr/src/Linux/Documentation/* | less
\u8fd9\u6837\uff0c\u60a8\u5c31\u53ef\u4ee5\u66f4\u65b9\u4fbf\u5730\u9605\u8bfb\u3002
\u6709\u4e00\u70b9\u8981\u6ce8\u610f\uff0c\u60a8\u5fc5\u9700\u63d0\u4f9b\u4e00\u4e2a\u6587\u4ef6\u8fc7\u6ee4\u65b9\u5f0f(\u641c\u7d22\u5168\u90e8\u6587\u4ef6\u7684\u8bdd\u7528 *)\u3002\u5982\u679c\u60a8\u5fd8\u4e86\uff0c\u2019grep\u2019\u4f1a\u4e00\u76f4\u7b49\u7740\uff0c\u76f4\u5230\u8be5\u7a0b\u5e8f\u88ab\u4e2d\u65ad\u3002\u5982\u679c\u60a8\u9047\u5230\u4e86\u8fd9\u6837\u7684\u60c5\u51b5\uff0c\u6309 \uff0c\u7136\u540e\u518d\u8bd5\u3002
\u4e0b\u9762\u8fd8\u6709\u4e00\u4e9b\u6709\u610f\u601d\u7684\u547d\u4ee4\u884c\u53c2\u6570\uff1a
grep -i pattern files \uff1a\u4e0d\u533a\u5206\u5927\u5c0f\u5199\u5730\u641c\u7d22\u3002\u9ed8\u8ba4\u60c5\u51b5\u533a\u5206\u5927\u5c0f\u5199\uff0c
grep -l pattern files \uff1a\u53ea\u5217\u51fa\u5339\u914d\u7684\u6587\u4ef6\u540d\uff0c
grep -L pattern files \uff1a\u5217\u51fa\u4e0d\u5339\u914d\u7684\u6587\u4ef6\u540d\uff0c
grep -w pattern files \uff1a\u53ea\u5339\u914d\u6574\u4e2a\u5355\u8bcd\uff0c\u800c\u4e0d\u662f\u5b57\u7b26\u4e32\u7684\u4e00\u90e8\u5206(\u5982\u5339\u914d\u2019magic\u2019\uff0c\u800c\u4e0d\u662f\u2019magical\u2019)\uff0c
grep -C number pattern files \uff1a\u5339\u914d\u7684\u4e0a\u4e0b\u6587\u5206\u522b\u663e\u793a[number]\u884c\uff0c
grep pattern1 | pattern2 files \uff1a\u663e\u793a\u5339\u914d pattern1 \u6216 pattern2 \u7684\u884c\uff0c
grep pattern1 files | grep pattern2 \uff1a\u663e\u793a\u65e2\u5339\u914d pattern1 \u53c8\u5339\u914d pattern2 \u7684\u884c\u3002
grep -n pattern files \u5373\u53ef\u663e\u793a\u884c\u53f7\u4fe1\u606f
grep -c pattern files \u5373\u53ef\u67e5\u627e\u603b\u884c\u6570
\u8fd9\u91cc\u8fd8\u6709\u4e9b\u7528\u4e8e\u641c\u7d22\u7684\u7279\u6b8a\u7b26\u53f7\uff1a
\ \u5206\u522b\u6807\u6ce8\u5355\u8bcd\u7684\u5f00\u59cb\u4e0e\u7ed3\u5c3e\u3002
\u4f8b\u5982\uff1a
grep man * \u4f1a\u5339\u914d \u2018Batman\u2019\u3001\u2019manic\u2019\u3001\u2019man\u2019\u7b49\uff0c
grep \u2018\<man\u2019 * \u5339\u914d\u2019manic\u2019\u548c\u2019man\u2019\uff0c\u4f46\u4e0d\u662f\u2019Batman\u2019\uff0c
grep \u2018\\u2019 \u53ea\u5339\u914d\u2019man\u2019\uff0c\u800c\u4e0d\u662f\u2019Batman\u2019\u6216\u2019manic\u2019\u7b49\u5176\u4ed6\u7684\u5b57\u7b26\u4e32\u3002
\u2018^\u2019\uff1a\u6307\u5339\u914d\u7684\u5b57\u7b26\u4e32\u5728\u884c\u9996\uff0c
\u2018$\u2019\uff1a\u6307\u5339\u914d\u7684\u5b57\u7b26\u4e32\u5728\u884c \u5c3e\uff0c


Grep \u547d\u4ee4 \u7528\u6cd5\u5927\u5168
1\u3001 \u53c2\u6570\uff1a
-I \uff1a\u5ffd\u7565\u5927\u5c0f\u5199
-c \uff1a\u6253\u5370\u5339\u914d\u7684\u884c\u6570
-l \uff1a\u4ece\u591a\u4e2a\u6587\u4ef6\u4e2d\u67e5\u627e\u5305\u542b\u5339\u914d\u9879
-v \uff1a\u67e5\u627e\u4e0d\u5305\u542b\u5339\u914d\u9879\u7684\u884c
-n\uff1a\u6253\u5370\u5305\u542b\u5339\u914d\u9879\u7684\u884c\u548c\u884c\u6807

2\u3001RE\uff08\u6b63\u5219\u8868\u8fbe\u5f0f\uff09
\ \u5ffd\u7565\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7279\u6b8a\u5b57\u7b26\u7684\u539f\u6709\u542b\u4e49
^ \u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5f00\u59cb\u884c
$ \u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u7ed3\u675f\u884c
\< \u4ece\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u884c\u5f00\u59cb
\> \u5230\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u884c\u7ed3\u675f
[ ] \u5355\u4e2a\u5b57\u7b26\uff1b\u5982[A] \u5373A\u7b26\u5408\u8981\u6c42
[ - ] \u8303\u56f4 \uff1b\u5982[A-Z]\u5373A\uff0cB\uff0cC\u4e00\u76f4\u5230Z\u90fd\u7b26\u5408\u8981\u6c42
. \u6240\u6709\u7684\u5355\u4e2a\u5b57\u7b26
* \u6240\u6709\u5b57\u7b26\uff0c\u957f\u5ea6\u53ef\u4ee5\u4e3a0

3\u3001\u4e3e\u4f8b
# ps -ef | grep in.telnetd
root 19955 181 0 13:43:53 ? 0:00 in.telnetd

# more size.txt size\u6587\u4ef6\u7684\u5185\u5bb9
b124230
b034325
a081016
m7187998
m7282064
a022021
a061048
m9324822
b103303
a013386
b044525
m8987131
B081016
M45678
B103303
BADc2345

# more size.txt | grep '[a-b]' \u8303\u56f4 \uff1b\u5982[A-Z]\u5373A\uff0cB\uff0cC\u4e00\u76f4\u5230Z\u90fd\u7b26\u5408\u8981\u6c42
b124230
b034325
a081016
a022021
a061048
b103303
a013386
b044525
# more size.txt | grep '[a-b]'*
b124230
b034325
a081016
m7187998
m7282064
a022021
a061048
m9324822
b103303
a013386
b044525
m8987131
B081016
M45678
B103303
BADc2345

# more size.txt | grep 'b' \u5355\u4e2a\u5b57\u7b26\uff1b\u5982[A] \u5373A\u7b26\u5408\u8981\u6c42
b124230
b034325
b103303
b044525
# more size.txt | grep '[bB]'
b124230
b034325
b103303
b044525
B081016
B103303
BADc2345

# grep 'root' /etc/group
root::0:root
bin::2:root,bin,daemon
sys::3:root,bin,sys,adm
adm::4:root,adm,daemon
uucp::5:root,uucp
mail::6:root
tty::7:root,tty,adm
lp::8:root,lp,adm
nuucp::9:root,nuucp
daemon::12:root,daemon

# grep '^root' /etc/group \u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5f00\u59cb\u884c
root::0:root

# grep 'uucp' /etc/group
uucp::5:root,uucp
nuucp::9:root,nuucp

# grep '\<uucp' /etc/group
uucp::5:root,uucp

# grep 'root$' /etc/group \u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u7ed3\u675f\u884c
root::0:root
mail::6:root

# more size.txt | grep -i 'b1..*3' -i \uff1a\u5ffd\u7565\u5927\u5c0f\u5199

b124230
b103303
B103303

# more size.txt | grep -iv 'b1..*3' -v \uff1a\u67e5\u627e\u4e0d\u5305\u542b\u5339\u914d\u9879\u7684\u884c

b034325
a081016
m7187998
m7282064
a022021
a061048
m9324822
a013386
b044525
m8987131
B081016
M45678
BADc2345

# more size.txt | grep -in 'b1..*3'
1:b124230
9:b103303
15:B103303

# grep '$' /etc/init.d/nfs.server | wc -l
128
# grep '\$' /etc/init.d/nfs.server | wc \u2013l \u5ffd\u7565\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7279\u6b8a\u5b57\u7b26\u7684\u539f\u6709\u542b\u4e49

15
# grep '\$' /etc/init.d/nfs.server
case "$1" in
>/tmp/sharetab.$$
[ "x$fstype" != xnfs ] &&
echo "$path\t$res\t$fstype\t$opts\t$desc"
>>/tmp/sharetab.$$
/usr/bin/touch -r /etc/dfs/sharetab /tmp/sharetab.$$
/usr/bin/mv -f /tmp/sharetab.$$ /etc/dfs/sharetab
if [ -f /etc/dfs/dfstab ] && /usr/bin/egrep -v '^[ ]*(#|$)'
if [ $startnfsd -eq 0 -a -f /etc/rmmount.conf ] &&
if [ $startnfsd -ne 0 ]; then
elif [ ! -n "$_INIT_RUN_LEVEL" ]; then
while [ $wtime -gt 0 ]; do
wtime=`expr $wtime - 1`
if [ $wtime -eq 0 ]; then
echo "Usage: $0 { start | stop }"

# more size.txt

the test file
their are files
The end

# grep 'the' size.txt
the test file
their are files

# grep '\<the' size.txt
the test file
their are files

# grep 'the\>' size.txt
the test file

# grep '\' size.txt
the test file

# grep '\' size.txt
the test file

==================================================================

1,\u7b80\u4ecb
\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u4e00\u4e2a\u591a\u7528\u9014\u6587\u672c\u641c\u7d22\u5de5\u5177.\u8fd9\u4e2aphp?name=%C3%FC%C1%EE" onclick="tagshow(event)" class="t_tag">\u547d\u4ee4\u672c\u6765\u662fed\u884c\u7f16\u8f91\u5668\u4e2d\u7684\u4e00\u4e2aphp?name=%C3%FC%C1%EE" onclick="tagshow(event)" class="t_tag">\u547d\u4ee4/\u8fc7\u6ee4\u5668:
g/re/p -- global - regular expression - print.
\u57fa\u672c\u683c\u5f0f
grep pattern [file...]
(1)grep \u641c\u7d22\u5b57\u7b26\u4e32 [filename]
(2)grep \u6b63\u5219\u8868\u8fbe\u5f0f [filename]
\u5728\u6587\u4ef6\u4e2d\u641c\u7d22\u6240\u6709 pattern \u51fa\u73b0\u7684\u4f4d\u7f6e, pattern \u65e2\u53ef\u4ee5\u662f\u8981\u641c\u7d22\u7684\u5b57\u7b26\u4e32,\u4e5f\u53ef\u4ee5\u662f\u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f.
\u6ce8\u610f\uff1a\u5728\u8f93\u5165\u8981\u641c\u7d22\u7684\u5b57\u7b26\u4e32\u65f6\u6700\u597d\u4f7f\u7528\u53cc\u5f15\u53f7/\u800c\u5728\u6a21\u5f0f\u5339\u914d\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u65f6\uff0c\u6ce8\u610f\u4f7f\u7528\u5355\u5f15\u53f7

2,grep\u7684\u9009\u9879
-c \u53ea\u8f93\u51fa\u5339\u914d\u884c\u7684\u8ba1\u6570
-i \u4e0d\u533a\u5206\u5927\u5c0f\u5199\uff08\u7528\u4e8e\u5355\u5b57\u7b26\uff09
-n \u663e\u793a\u5339\u914d\u7684\u884c\u53f7
-v \u4e0d\u663e\u793a\u4e0d\u5305\u542b\u5339\u914d\u6587\u672c\u7684\u6240\u4ee5\u6709\u884c
-s \u4e0d\u663e\u793a\u9519\u8bef\u4fe1\u606f
-E \u4f7f\u7528\u6269\u5c55\u6b63\u5219\u8868\u8fbe\u5f0f
\u66f4\u591a\u7684\u9009\u9879\u8bf7\u67e5\u770b\uff1aman grep

3,\u5e38\u7528grep\u5b9e\u4f8b

(1)\u591a\u4e2a\u6587\u4ef6\u67e5\u8be2
grep "sort" *.doc #\u89c1\u6587\u4ef6\u540d\u7684\u5339\u914d

(2)\u884c\u5339\u914d:\u8f93\u51fa\u5339\u914d\u884c\u7684\u8ba1\u6570
grep -c "48" data.doc #\u8f93\u51fa\u6587\u6863\u4e2d\u542b\u670948\u5b57\u7b26\u7684\u884c\u6570

(3)\u663e\u793a\u5339\u914d\u884c\u548c\u884c\u6570
grep -n "48" data.doc #\u663e\u793a\u6240\u6709\u5339\u914d48\u7684\u884c\u548c\u884c\u53f7

(4)\u663e\u793a\u975e\u5339\u914d\u7684\u884c
grep -vn "48" data.doc #\u8f93\u51fa\u6240\u6709\u4e0d\u5305\u542b48\u7684\u884c

(4)\u663e\u793a\u975e\u5339\u914d\u7684\u884c
grep -vn "48" data.doc #\u8f93\u51fa\u6240\u6709\u4e0d\u5305\u542b48\u7684\u884c

(5)\u5927\u5c0f\u5199\u654f\u611f
grep -i "ab" data.doc #\u8f93\u51fa\u6240\u6709\u542b\u6709ab\u6216Ab\u7684\u5b57\u7b26\u4e32\u7684\u884c

4, \u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5e94\u7528

(1)\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5e94\u7528 (\u6ce8\u610f\uff1a\u6700\u597d\u628a\u6b63\u5219\u8868\u8fbe\u5f0f\u7528\u5355\u5f15\u53f7\u62ec\u8d77\u6765)
grep '[239].' data.doc #\u8f93\u51fa\u6240\u6709\u542b\u6709\u4ee52,3\u62169\u5f00\u5934\u7684\uff0c\u5e76\u4e14\u662f\u4e24\u4e2a\u6570\u5b57\u7684\u884c

(2)\u4e0d\u5339\u914d\u6d4b\u8bd5
grep '^[^48]' data.doc #\u4e0d\u5339\u914d\u884c\u9996\u662f48\u7684\u884c

(3)\u4f7f\u7528\u6269\u5c55\u6a21\u5f0f\u5339\u914d
grep -E '219|216' data.doc

(4) ...
\u8fd9\u9700\u8981\u5728\u5b9e\u8df5\u4e2d\u4e0d\u65ad\u5e94\u7528\u548c\u603b\u7ed3\uff0c\u719f\u7ec3\u638c\u63e1\u6b63\u5219\u8868\u8fbe\u5f0f\u3002

5, \u4f7f\u7528\u7c7b\u540d
\u53ef\u4ee5\u4f7f\u7528\u56fd\u9645\u6a21\u5f0f\u5339\u914d\u7684\u7c7b\u540d\uff1a
[[:upper:]] [A-Z]
[[:lower:]] [a-z]
[[:digit:]] [0-9]
[[:alnum:]] [0-9a-zA-Z]
[[:space:]] \u7a7a\u683c\u6216tab
[[:alpha:]] [a-zA-Z]

(1)\u4f7f\u7528
grep '5[[:upper:]][[:upper:]]' data.doc #\u67e5\u8be2\u4ee55\u5f00\u5934\u4ee5\u4e24\u4e2a\u5927\u5199\u5b57\u6bcd\u7ed3\u5c3e\u7684\u884c

\u7b80\u5355\u7684\u8bf4
grep\u5c31\u662f\u5728\u4e00\u5806\u6587\u4ef6\u91cc\u9762\u67e5\u627e\u60f3\u8981\u7684\u5185\u5bb9\u3002
\u5982grep hello *bak
\u5c31\u662f\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u4ee5bak\u7ed3\u5c3e\u7684\u6587\u4ef6\u91cc\u9762\u627e\u51fa\u6240\u6709\u5e26\u6709hello\u7684\u884c

1、基本用法
grep命令的基本用法是在文件中查找包含指定模式的行。例如,要在文件file.txt中查找包含example的行,可以执行以下命令:
grep 'example'file.txt
grep将输出所有包含'example'的行。
2、忽略大小写
默认情况下,grep区分大小写。如果要忽略大小写进行搜索,可以使用-i选项。例如,要在文件中查找包含'example'的行,不区分大小写,可以执行以下命令:
grep -i "example"file.txt
3、正则表达式搜索
grep支持使用正则表达式进行高级搜索。例如,要查找以"example"开头的行,可以使用正则表达式的锚定符号"^":
grep "^example"file.txt
这将输出所有以"example"开头的行。
4、反向搜索:
有时候需要查找不包含指定模式的行。可以使用-v选项来进行反向搜索。例如,要查找不包含"example"的行,可以执行以下命令:
grep -v "example"file.txt
grep将输出所有不包含"example"的行。
5、统计匹配行数
如果只关心匹配行的数量,可以使用-c选项来统计匹配行的数量。例如,要统计文件中包含"example"的行数,可以执行以下命令:
grep -c "example"file.txt
grep将输出匹配行的数量。
6、递归搜索
如果要在一个目录及其子目录中递归搜索文件,可以使用-r选项。例如,要在当前目录及其子目录中查找包含"example"的行,可以执行以下命令:
grep -r "example".
grep将递归搜索所有文件,并输出包含"example"的行。

在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鍛戒护璇﹁В
    绛旓細grep鍛戒护鏄痩inux涓嬬殑涓涓枃妗g紪杈戝懡浠わ紝瀹冧富瑕佹湁涓涓姛鑳斤紝鍏蜂綋浠嬬粛濡備笅锛歡rep鍛戒护鏄竴涓己澶х殑鏂囨湰鎼滅储宸ュ叿锛岄氬父鍙互鐢ㄥ湪瀵规悳绱㈣繃绋嬬殑琛ュ厖銆傝鏄庯細grep鍛戒护鐨勬ā寮忔槸闈炲父鐏垫椿鐨勶紝鍙互鏄彉閲忋佸瓧绗︿覆绛夛紝鍥犳鍦ㄤ娇鐢ㄦ椂瑕佹敞鎰忔ā寮忎腑鏄惁鍖呭惈浜嗙┖鏍硷紝濡傛灉鏈夛紝涓瀹氳鐢ㄥ弻寮曞彿灏嗗叾寮曡捣鏉ャ俫rep鍛戒护鐨勫叿浣撳懡浠ょ殑璇...
  • linux egrep鍛戒护璇﹁В
    绛旓細egrep鍛戒护鏄linux涓鐨勪竴涓枃妗g紪杈戝懡浠わ紝瀹冧富瑕佹湁涓涓姛鑳斤紝鍏蜂綋浠嬬粛濡備笅锛歟grep鍛戒护鐨勫姛鑳芥槸鑳藉鍦ㄦ枃浠跺唴鏌ユ壘鎸囧畾鐨勫瓧绗︿覆銆傝鏄庯細egrep鍛戒护鐨勬墽琛屾晥鏋滀笌grep -E寰堢浉浼硷紝瀹冩墍浣跨敤鐨勮娉曞拰鍙傛暟鑳藉鍙傜収grep鍛戒护锛屼絾瀹冧笌grep鍛戒护鐨涓嶅悓鐐瑰氨鍦ㄤ簬浜岃呰В璇诲瓧绗︿覆鐨勬柟娉曘俥grep鍛戒护鐨勫叿浣撳懡浠ょ殑璇硶鏍煎紡涓篹grep [...
  • linux rgrep鍛戒护璇﹁В
    绛旓細Linux rgrep鍛戒护鐢ㄤ簬閫掑綊鏌ユ壘鏂囦欢閲岀鍚堟潯浠鐨瀛楃涓诧紝鍙煡鎵惧唴瀹瑰寘鍚寚瀹氱殑鑼冩湰鏍峰紡鐨勬枃浠讹紝濡傛灉鍙戠幇鏌愭枃浠剁殑鍐呭绗﹀悎鎵鎸囧畾鐨勮寖鏈牱寮忥紝棰勮rgrep鍛戒护浼氭妸鍚湁鑼冩湰鏍峰紡鐨勯偅涓鍒楁樉绀哄嚭鏉ャ傝娉曪細rgrep [-?BcDFhHilnNrv][-R鑼冩湰鏍峰紡][-W鍒楅暱搴[-x鎵╁睍鍚峕[--help][--version][鑼冩湰鏍峰紡][鏂囦欢鎴栫洰褰...
  • Linux涓婫rep鍛戒护鐨勮缁浣跨敤鏂规硶?
    绛旓細鍦linux涓璯rep鍛戒护鏄潪甯告湁鐢ㄧ殑,瀹冨拰绠¢亾(|)閰嶅悎浣跨敤,闈炲父寮哄ぇ,鐢ㄤ簬鎼滅储鏂囨湰鏂囦欢.濡傛灉鎯宠鍦ㄥ嚑涓枃鏈枃浠朵腑鏌ユ壘涓瀛楃涓诧紝鍙互浣跨敤鈥榞rep鈥欏懡浠ゃ傗榞rep鈥欏湪鏂囨湰涓悳绱㈡寚瀹氱殑瀛楃涓层 鍋囪鎮ㄦ鍦ㄢ/usr/src/linux/Documentation鈥欑洰褰曚笅鎼滅储甯﹀瓧绗︿覆鈥榤agic鈥欑殑鏂囦欢锛 $ grep magic /usr/src/linux/Doc...
  • linux鍛戒护grep
    绛旓細Linux涓殑grep鍛戒护鏄竴涓己澶х殑鏂囨湰鎼滅储宸ュ叿锛屽叾涓昏鍔熻兘鏄煡鎵炬枃浠朵腑绗﹀悎鐗瑰畾瀛楃涓茬殑琛屻傚湪浣跨敤鏃讹紝鍙互鎸囧畾鍚勭鍙傛暟浠ュ畾鍒舵悳绱㈣涓恒備緥濡傦細鍛戒护鏍煎紡濡傦細grep -nr "network_ssl" ./銆傝繖閲岀殑-nr閫夐」鍒嗗埆浠h〃锛-n锛氫細鏄剧ず鎵惧埌鐨勬瘡涓琛岀殑琛屽彿锛岃浣犳洿绮剧‘鍦板畾浣嶅埌鍖呭惈鐩爣瀛楃涓茬殑浣嶇疆銆-r锛氭悳绱㈣寖鍥村彲...
  • linux鍛戒护澶у叏涔grep鍛戒护璇﹁В
    绛旓細Linux绯荤粺涓璯rep鍛戒护鏄竴绉嶅己澶х殑鏂囨湰鎼滅储宸ュ叿,瀹冭兘浣跨敤姝e垯琛ㄨ揪寮忔悳绱㈡枃鏈,骞舵妸鍖 閰嶇殑琛屾墦鍗板嚭鏉ャ俫rep鍏ㄧО鏄疓lobal Regular Expression Print,琛ㄧず鍏ㄥ眬姝e垯琛ㄨ揪寮忕増鏈,瀹冪殑浣跨敤鏉冮檺鏄墍鏈夌敤鎴枫 grep鐨勫伐浣滄柟寮忔槸杩欐牱鐨,瀹冨湪涓涓垨澶氫釜鏂囦欢涓悳绱㈠瓧绗︿覆妯℃澘銆傚鏋滄ā鏉垮寘鎷┖鏍,鍒欏繀椤昏寮曠敤,妯℃澘鍚庣殑鎵鏈夊瓧绗︿覆琚湅浣...
  • linux 鏂囨湰澶勭悊宸ュ叿涔嬩竴grep鍛戒护璇﹁В
    绛旓細grep --color "ro/{2/}" /etc/passwd (10)銆佹樉绀/etc/passwd涓,鍖归厤root杩欎釜鍗曡瘝鐨勮; grep --color "/root/" /etc/passwd grep鏀寔鎵╁睍琛ㄨ揪寮忕殑鍏冨瓧绗:鏀寔鎵鏈夊熀鏈鍒欒〃杈惧紡鐨勫厓瀛楃,鏈変簺鍜屽熀鏈厓瀛楃鍦ㄧ敤娉曚笂涓嶄竴鏍,鎵╁睍姝e垯琛ㄨ揪寮鐨勫懡浠egrep鎴栬単rep -E    ?:鍖归厤绱ф尐鍦ㄥ墠闈㈢殑瀛楃0娆℃垨1...
  • linux鍛戒护grep鐢ㄦ硶
    绛旓細Linux grep鍛戒护鐢ㄤ簬鏌ユ壘鏂囦欢閲岀鍚堟潯浠鐨瀛楃涓叉垨姝e垯琛ㄨ揪寮忋grep鎸囦护鐢ㄤ簬鏌ユ壘鍐呭鍖呭惈鎸囧畾鐨勮寖鏈牱寮忕殑鏂囦欢锛屽鏋滃彂鐜版煇鏂囦欢鐨勫唴瀹圭鍚堟墍鎸囧畾鐨勮寖鏈牱寮忥紝棰勮 grep 鎸囦护浼氭妸鍚湁鑼冩湰鏍峰紡鐨勯偅涓鍒楁樉绀哄嚭鏉ャ傝嫢涓嶆寚瀹氫换浣曟枃浠跺悕绉帮紝鎴栨槸鎵缁欎簣鐨勬枃浠跺悕涓 -锛屽垯 grep 鎸囦护浼氫粠鏍囧噯杈撳叆璁惧璇诲彇鏁版嵁銆傝娉曪細gre...
  • Linux涓婫rep鍛戒护鐨勮缁浣跨敤鏂规硶?
    绛旓細1銆佸熀鏈敤娉 grep鍛戒护鐨鍩烘湰鐢ㄦ硶鏄湪鏂囦欢涓鏌ユ壘鍖呭惈鎸囧畾妯″紡鐨勮銆備緥濡傦紝瑕佸湪鏂囦欢file.txt涓煡鎵惧寘鍚玡xample鐨勮锛屽彲浠ユ墽琛屼互涓嬪懡浠わ細grep 'example'file.txt grep灏嗚緭鍑烘墍鏈夊寘鍚'example'鐨勮銆2銆佸拷鐣ュぇ灏忓啓 榛樿鎯呭喌涓嬶紝grep鍖哄垎澶у皬鍐欍傚鏋滆蹇界暐澶у皬鍐欒繘琛屾悳绱紝鍙互浣跨敤-i閫夐」銆備緥濡傦紝瑕佸湪鏂囦欢涓...
  • linux涓璯rep鍛戒护鐨浣跨敤
    绛旓細linux涓璯rep鍛戒护鐨浣跨敤grep (global search regular expression(RE) and print out the line,鍏ㄩ潰鎼滅储姝e垯琛ㄨ揪寮忓苟鎶婅鎵撳嵃鍑烘潵)鏄竴绉嶅己澶х殑鏂囨湰鎼滅储宸ュ叿,瀹冭兘浣跨敤姝e垯琛ㄨ揪寮忔悳绱㈡枃鏈,骞舵妸鍖归厤鐨勮鎵撳嵃鍑烘潵銆俇nix鐨刧rep瀹舵棌鍖呮嫭grep銆乪grep鍜宖grep銆俫rep鍛戒护鏄竴绉嶅己澶х殑鏂囨湰鎼滅储宸ュ叿,瀹冭兘浣跨敤姝e垯琛ㄨ揪寮忔悳绱㈡枃鏈,骞舵妸鍖...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网