grep命令详解 Linux中利用grep命令如何检索文件内容详解

grep\u547d\u4ee4\u8be6\u89e3\u662f\u4ec0\u4e48\uff1f

\u53ef\u4ee5\u4f7f\u7528head-1\u547d\u4ee4\u6765\u53ea\u53d6grep\u5230\u7684\u6570\u636e\u7684\u7b2c\u4e00\u884c\u3002
\u4f8b\u5982\u4e00\u4e2a\u6587\u672c\u6587\u6863a.txt\u5185\u5bb9\u662f\uff1a
\u4f7f\u7528\u547d\u4ee4cata.txt|grep\u5317\u4eac|head-n1\u53ef\u4ee5\u53ea\u53d6\u5230\u7b2c\u4e00\u884c\u7684\u6570\u636e\u5317\u4eac\u3002
-c,--bytes=[-]K\uff1bk,\u663e\u793a\u6587\u6863\u5f00\u59cb\u7684\u524dk\u4e2a\u5b57\u8282\uff0c-k,\u4e0d\u663e\u793a\u6587\u6863\u7ed3\u5c3e\u7684\u6700\u540ek\u4e2a\u5b57\u8282\u3002
-n,--lines=[-]K\uff1ak,\u663e\u793a\u6587\u6863\u5f00\u59cb\u7684\u524dk\u884c\uff0c-k,\u4e0d\u663e\u793a\u6587\u6863\u7ed3\u5c3e\u7684\u6700\u540ek\u884c\u3002
-q,--quiet,--silent\uff1a\u4e0d\u663e\u793a\u5305\u542b\u7ed9\u5b9a\u6587\u4ef6\u540d\u7684\u6587\u4ef6\u5934\u3002






\u547d\u4ee4\u8be6\u89e3\uff1a
head\u547d\u4ee4\u4e0etail\u547d\u4ee4\u7528\u6cd5\u76f8\u4f3c\uff0chead\u547d\u4ee4\u7528\u4e8e\u67e5\u770b\u6587\u6863\u7684\u5f00\u59cb\u6307\u5b9a\u6570\u91cf\u7684\u5b57\u7b26\u5757\uff0c\u9ed8\u8ba4\u663e\u793a\u6587\u6863\u7684\u524d10\u884c\uff0c\u5982\u679c\u7ed9\u5b9a\u7684\u6587\u4ef6\u4e0d\u6b62\u4e00\u4e2a\uff0c\u5219\u5728\u663e\u793a\u7684\u6bcf\u4e2a\u6587\u4ef6\u524d\u9762\u52a0\u4e00\u4e2a\u6587\u4ef6\u540d\u6807\u9898\u3002
grep\u547d\u4ee4\u7528\u6cd5\u683c\u5f0f\uff1a
head\u3010\u53c2\u6570\u3011\u3010\u6587\u4ef6\u3011\u3002

\u5982\u679c\u662f\u7528vi\u6253\u5f00\u6587\u4ef6\u540e\uff0c\u5728\u547d\u4ee4\u884c\u4e0b\u8f93\u5165\u201c/\u5173\u952e\u5b57\u201d \u5982\u679c\u662f\u5728\u6ca1\u6709\u6253\u5f00\u6587\u4ef6\u7684\u524d\u63d0\u5c31\u7528"cat \u6587\u4ef6\u540d | grep "\u5173\u952e\u5b57""

linux grep命令:

<p fc05="" fc11="" nbw-blog="" ztag="" js-fs2"="">

1、作用

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression print,表示全局正则表达式版本,它的使用权限是所有用户。

2、格式

grep [options]

3、主要参数

[options]主要参数:

-c:只输出匹配行的计数。

-I:不区分大 小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及 行号。

-s:不显示不存在或无匹配文本的错误信息。

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

pattern正则表达式主要参数:

\: 忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$: 匹配正则表达式的结束行。

\<:从匹配正则表达 式的行开始。

\>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求 。

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

。:所有的单个字符。

* :有字符,长度可以为0。

4.grep命令使用简单实例

$ grep ‘test’ d*

显示所有以d开头的文件中包含 test的行。

$ grep ‘test’ aa bb cc

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

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

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

$ grep ‘w\(es\)t.*\1′ aa

扩展资料:

egrep 命令,搜索文件获得模式。egrep 命令会在输入文件(缺省值为标准输入)中搜索与Pattern 参数指定的模式相匹配的行。这些模式是完整的正则表达式就像在 ed 命令中的那样(除了 \ (反斜杠)和 \\ (双反斜杠))。下列规则也应用于 egrep 命令:

一个正则表达式后面带一个 + (加号)会匹配一个或多个的正则表达式,一个正则表达式后面带一个 ? (问号)会匹配零个或一个该正则表达式,由 | (竖线)或者换行符隔开的多个正则表达式会匹配与任何一个正则表达式所匹配的字符串。

一个正则表达式可以被包括在“()”(括弧)中进行分组,换行符将不会被正则表达式匹配,运算符的优先顺序是 [, ], *, ?, +, 合并, | 和换行符。

注意: egrep 命令与 grep 命令带 -E 标志是一样的,除了错误消息和使用消息不同以及 -s 标志的功能不同之外,egrep 命令会显示包含该匹配行的文件,如果指定了多于一个 File 参数的话。

参考资料:百度百科—GREP

参考资料:百度百科—linux命令



在Linux系统中,可通过grep命令来查看文件包含内容,该命令主要用于查找文件里符合条件的字符串。
grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是给予的文件名为-,则grep指令会从标准输入设备读取数据。
语法
grep[-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
参数
-a或--text:不要忽视二进制的数据。
-A<显示行数>或--after-context=<显示行数>:除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b或--byte-offset:在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数>或--before-context=<显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。
-c或--conunt:计算符合样式的列数。
-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:在显示符合样式的那一行之前,标示出该行的列数编号。
-o或--only-matching:只显示匹配PATTERN部分。
-q或--quiet或--silent:不显示任何信息。
-r或--recursive:此参数的效果和指定"-d recurse"参数相同。
-s或--no-messages:不显示错误信息。
-v或--invert-match:显示不包含匹配文本的所有行。
-V或--version:显示版本信息。
-w或--word-regexp:只显示全字符合的列。
-x--line-regexp:只显示全列符合的列。
-y:此参数的效果和指定"-i"参数相同。

grep命令作为Linux文本处理三剑客的一员,另外两个是sed和awk。
grep命令的由来可以追溯到UNIX诞生的早期,在UNIX系统中,搜索的模式(patterns)被称为正则表达式(regular
expressions),为了要彻底搜索一个文件,有的用户在要搜索的字符串前加上前缀global(全面的),一旦找到相匹配的内容,用户就像将其输出(print)到屏幕上,而将这一系列的操作整合到一起就是global
regular expressions print,而这也就是grep命令的全称。
grep命令能够在一个或多个文件中,搜索某一特定的字符模式(也就是正则表达式),此模式可以是单一的字符、字符串、单词或句子。
正则表达式是描述一组字符串的一个模式,正则表达式的构成模仿了数学表达式,通过使用操作符将较小的表达式组合成一个新的表达式。正则表达式可以是一些纯文本文字,也可以是用来产生模式的一些特殊字符。为了进一步定义一个搜索模式,grep
命令支持如表 1 所示的这几种正则表达式的元字符(也就是通配符)。
grep命令的基本格式如下:
[root@localhost ~]# grep [选项] 模式 文件名
这里的模式,要么是字符(串),要么是正则表达式。
grep命令常用选项及含义:
-c:仅列出文件中包含模式的行数。
-i:忽略模式中的字母大小写。
-l:列出带有匹配行的文件名。
-n:在每一行的最前面列出行号。
-v:列出没有匹配模式的行。
-w:把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行。
注意,如果是搜索多个文件,grep命令的搜索结果只显示文件中发现匹配模式的文件名;而如果搜索单个文件,grep命令的结果将显示每一个包含匹配模式的行。

Linux grep命令用于查找文件里符合条件的字符串或正则表达式。

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep
指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

语法:

grep [options] pattern [files]

pattern - 表示要查找的字符串或正则表达式。

files - 表示要查找的文件名,可以同时查找多个文件,如果省略files参数,则默认从标准输入中读取数据。

常用选项:

-i:忽略大小写进行匹配

-v:反向查找,只打印不匹配的行

-n:显示匹配行的行号

-r:递归查找子目录中的文件

-l:只打印匹配的文件名

-c:只打印匹配的行数

更多参数:

-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:将样式视为固定字符串的列表。

参数有很多,就不一一介绍了,希望大家在学习工作的过程中慢慢认识它们。



  • linux find鍛戒护璇﹁В
    绛旓細find鍛戒护鍙皢妗f绯荤粺鍐呯鍚 expression 鐨勬。妗堝垪鍑烘潵銆備綘鍙互鎸囪妗f鐨勫悕绉般佺被鍒佹椂闂淬佸ぇ灏忋佹潈闄愮瓑涓嶅悓璧勮鐨勭粍鍚堬紝鍙湁瀹屽叏鐩哥鐨勬墠浼氳鍒楀嚭鏉ャ俧ind 鏍规嵁涓嬪垪瑙勫垯鍒ゆ柇 path 鍜 expression锛屽湪鍛戒护鍒椾笂绗竴涓 - ( ) , ! 涔嬪墠鐨勯儴鍒嗕负 path锛屼箣鍚庣殑鏄 expression銆傝繕鏈夋寚DOS 鍛戒护 find锛孍xcel ...
  • linux rpm鍛戒护璇﹁В
    绛旓細rpm -qa | grep httpd銆 锛僛鎼滅储鎸囧畾rpm鍖呮槸鍚﹀畨瑁匽鈥揳ll鎼滅储httpd rpm -ql httpd銆锛僛鎼滅储rpm鍖匽鈥搇ist鎵鏈夋枃浠跺畨瑁呯洰褰 rpm -qpi Linux-1.4-6.i368.rpm銆锛僛鏌ョ湅rpm鍖匽鈥搎uery鈥損ackage鈥搃nstall package淇℃伅 rpm -qpf Linux-1.4-6.i368.rpm銆锛僛鏌ョ湅rpm鍖匽鈥揻ile rpm -qpR file.rpm...
  • linux鏌ョ湅杩涚▼鍗犵敤鍐呭瓨鎯呭喌linux鏌ョ湅杩涚▼鍗犵敤
    绛旓細ps-ef|grep11345鏌ョ湅璇ヨ繘绋嬫墦寮鐨勬枃浠讹細lsof-p11345鏌ョ湅鍐呭瓨鍒嗛厤锛歭cat/proc/11345/maps鏌ョ湅鍫嗘爤锛歱stack11345鏌ョ湅鍙戝嚭鐨勭郴缁熻皟鐢:strace-p11345鏌ョ湅璋冪敤搴撳嚱鏁:ltrace-p1134511345鏄繘绋嬪彿 璇﹁ВLinux濡備綍鏌ョ湅褰撳墠鍗犵敤CPU鎴栧唴瀛樻渶澶氱殑鍑犱釜杩涚▼锛熷彲浠ヤ娇鐢ㄤ竴涓鍛戒护鏌ヤ娇鐢ㄥ唴瀛樻渶澶氱殑5涓繘绋媝s-aux|sort-k4nr|...
  • netstat鍛戒护鐨勪綔鐢
    绛旓細netstat鍛戒护鐨勫姛鑳芥槸鏄剧ず缃戠粶杩炴帴銆佽矾鐢辫〃鍜岀綉缁滄帴鍙d俊鎭紝鍙互璁╃敤鎴峰緱鐭ユ湁鍝簺缃戠粶杩炴帴姝e湪杩愪綔銆備娇鐢ㄦ椂濡傛灉涓嶅甫鍙傛暟锛宯etstat鏄剧ず娲诲姩鐨 TCP 杩炴帴銆傝鍛戒护鐨勪竴鑸牸寮忎负 锛歯etstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval][1]鍒楁爣棰橈細Name鎺ュ彛鐨勫悕瀛 Mtu 鎺ュ彛鐨勬渶澶т紶杈撳崟浣 Net/...
  • linuxxml鏂囦欢鎬庝箞鎵撳紑linuxxml鏂囦欢
    绛旓細Linux鏌ョ湅tomcat绔彛鏄惁鍗犵敤锛熸垜鐨勶細linux鏌ョ湅tomcat绔彛鏄惁鍗犵敤锛岄渶瑕佷娇鐢╪etstat-ano|grep绔彛鍙风殑鍛戒护銆備竴鑸瑃omcat浣跨敤鐨勭鍙e湪瀹夎鐩綍涓嬬殑閰嶇疆鏂囦欢涓紝浣嶄簬Tomcat鐨勫畨瑁呯洰褰/conf/server.xml鏂囦欢涓備竴鑸唬鐮佸涓嬶細Connectorport=8080protocol=HTTP/1.1connectionTimeout=20000redirectPort=8443/> 鍏朵腑TCP8080...
  • dos杩愯鍛戒护澶у叏
    绛旓細甯哥敤鐨勫唴閮ㄥ懡浠ゆ湁MD銆丆D銆丷D銆丏IR銆丳ATH銆丆OPY銆乀YPE銆丒DIT銆丷EN銆丏EL銆丆LS銆乂ER銆丏ATE銆乀IME銆丳ROMPT銆傚父鐢ㄧ殑澶栭儴鍛戒护鏈塂ELTREE銆丗ORMAT銆丏ISKCOPY銆丩ABEL銆乂OL銆丼YS銆乆COPY銆丗C銆丄TTRIB銆丮EM銆乀REE銆傚父鐢ㄧ殑鍐呴儴鍛戒护璇﹁В1.MD鈥斺斿缓绔嬪瓙鐩綍鍔熻兘:鍒涘缓鏂扮殑瀛愮洰褰曠被鍨:鍐呴儴鍛戒护眉鏍煎紡:MD[鐩樼:][璺緞鍚峕銆堝瓙鐩綍鍚嶃...
  • 鏉tomcat杩涚▼鍛戒护璇﹁В
    绛旓細杩欏潡浣跨敤鏃舵渶濂藉姞涓grep -v鎶婃煡鍑烘潵鐨勫畠鑷韩鐨刧rep琛岃繃婊ゆ帀 awk {'print $2'} 鏄彇鐢ㄧ┖鏍煎垎鍓茬殑鍝竴鍒楋紝'print $2'杈撳嚭绗簩鍒楋紝涔熷氨鏄痶omcat鐨勮繘绋婸ID锛宻ed -e "s/^/kill -9 /g"锛歴ed鏂囨湰澶勭悊鍛戒护锛-e璇存槑 浣跨敤姝e垯琛ㄨ揪寮 锛"s/X/Y/g"鏇挎崲鐨勬牸寮忥紝鐢╕鏇挎崲X锛屾妸涓琛岀殑寮澶达紙^锛夌敤...
  • linux鍛戒护澶у叏涔媝s鍛戒护璇﹁В
    绛旓細root 17465 17398 0 15:57 pts/0 00:00:00 grep ssh 璇存槑: 瀹炰緥5:灏嗙洰鍓嶅睘浜庢偍鑷繁杩欐鐧诲叆鐨 PID 涓庣浉鍏充俊鎭垪绀哄嚭鏉 鍛戒护:ps -l 杈撳嚭: 澶嶅埗浠g爜 浠g爜濡備笅: [root@localhost test6]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 17398 17394 0 75 0 - 16543 wa...
  • linux unset鍛戒护璇﹁В
    绛旓細-v锛氫粎鍒犻櫎鍙橀噺銆4銆佸弬鏁帮細shell鍙橀噺鎴栧嚱鏁帮細鎸囧畾瑕佸垹闄ょ殑shell鍙橀噺鎴杝hell鍑芥暟銆備妇渚嬶細浣跨敤unset鍛戒护灏嗗墠闈㈡墍鍒涘缓鐨勭幆澧冨彉閲弇ylove鍙婂叾瀵瑰簲鐨勫艰繘琛屽垹闄わ紝杈撳叆濡備笅鍛戒护锛歶nset -v mylove #鍒犻櫎鎸囧畾鐨勭幆澧冨彉閲 鎵ц浠ヤ笂鍛戒护鍚庯紝绯荤粺灏嗗垹闄ゆ寚瀹氱殑鐜鍙橀噺銆傜敤鎴峰彲浠ヤ娇鐢╡nv鍛戒护鍜grep鍛戒护瀵瑰叾杩涜鏌ヨ銆傚凡缁...
  • linux閲岀殑netstat -tnl鏄粈涔堟剰鎬?
    绛旓細瀹冧富瑕佺殑鐢ㄦ硶鍜岃瑙o紒锛坣etstat -na 鍛戒护锛夛紝鏈枃涓昏鏄Linux涓嬬殑netstat宸ュ叿锛岀劧鍚庤缁嗚鏄庝竴涓嬪悇绉嶇綉缁滆繛鎺ョ姸鎬併俷etstat -nat |awk 鈥榹print $6}鈥檤sort|uniq -c|sort -nr 1.netstat鍛戒护璇﹁В 鍏跺疄鎴戝父鐢ㄧ殑鏄 netstat -tnl | grep 443 锛堟煡鐪443绔彛鏄惁琚崰鐢級锛屽鏋滄湁褰撳墠鏄痳oot鐢ㄦ埛锛屾垜...
  • 扩展阅读:linux中grep命令详解 ... linux的grep命令用法 ... linux grep查找关键字 ... grep 参数详解 ... 一看就懂grep命令详解 ... linux管道命令grep ... grep -r命令查找文件内容 ... grep rn 查找文件内容 ... ps-efgrep命令详解 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网