{"id":254,"date":"2017-12-19T09:38:35","date_gmt":"2017-12-19T09:38:35","guid":{"rendered":"http:\/\/www.liutianfeng.com\/?p=254"},"modified":"2018-01-12T13:56:19","modified_gmt":"2018-01-12T13:56:19","slug":"grep-egrep-fgrep%e5%ae%b6%e6%97%8f","status":"publish","type":"post","link":"https:\/\/www.liutianfeng.com\/?p=254","title":{"rendered":"grep-egrep-fgrep\u5bb6\u65cf"},"content":{"rendered":"<p>\u7cfb\u7edf\u5e2e\u52a9\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">grep, egrep, fgrep - print lines matching a pattern\r\ngrep: Global Research Regular Expression, \u6839\u636e\u6a21\u5f0f\u641c\u7d22\u6587\u672c\uff0c\u5e76\u5c06\u7b26\u5408\u6a21\u5f0f\u7684\u6587\u672c\u884c\u663e\u793a\u51fa\u6765\u3002\r\nPattern: \u6a21\u5f0f, \u6587\u672c\u5b57\u7b26\u548c\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5143\u5b57\u7b26\u7ec4\u5408\u800c\u6210\u5339\u914d\u6761\u4ef6<\/code><\/pre>\n<p>\u6a21\u5f0f\u4e2d\uff0c\u5982\u679c\u6ca1\u6709\u5143\u5b57\u7b26\uff0c\u53ef\u4ee5\u4e0d\u7528\u5f15\u53f7\uff08\u5355\u53cc\uff09\u62ec\u8d77\u6765\u3002<br \/>\n\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5143\u5b57\u7b26? \u8be6\u89c1\u4e0b\u9762.<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">grep\u7684\u683c\u5f0f: \u4f7f\u7528\u57fa\u672c\u6b63\u5219\u8868\u8fbe\u5f0f\u5b9a\u4e49\u7684\u6a21\u5f0f\u6765\u8fc7\u6ee4\u6587\u672c\u7684\u547d\u4ee4\uff1b\r\ngrep [options] PATTERN [FILE...]\r\n \r\ngrep\uff1a\u4f7f\u7528\u57fa\u672c\u6b63\u5219\u8868\u8fbe\u5f0f\u5b9a\u4e49\u7684\u6a21\u5f0f\u6765\u8fc7\u6ee4\u6587\u672c\u7684\u547d\u4ee4\uff1b\r\n -i: \u5ffd\u7565\u5927\u5c0f\u5199\r\n -v: \u53d6\u53cd, \u663e\u793a\u6ca1\u6709\u88ab\u6a21\u5f0f\u5339\u914d\u5230\u7684\u884c\r\n -o: \u4ec5\u663e\u793a\u5339\u914d\u7684\u5b57\u7b26\u4e32, \u6bcf\u4e2a\u5b57\u7b26\u4e32\u663e\u793a\u4e3a\u4e00\u884c\uff0c\u7528\u4e8e\u5bfb\u627e\u5339\u914d\u6b21\u6570\uff0c\u4e0ewc\u53ef\u4ee5\u4e00\u8d77\u7528\u3002\r\n --color|--colour: \u9ad8\u4eae\u989c\u8272\u663e\u793a\u5339\u914d\u7684\u5b57\u7b26\u4e32.\r\n -E: \u4f7f\u7528\u6269\u5c55\u6b63\u5219\u8868\u8fbe\u5f0f\r\n -A #: After, #\u6307\u5b9a\u663e\u793a\u7684\u884c\u6570, \u8868\u793a\u5339\u914d\u5230\u884c\u4ee5\u540e, \u4e00\u5e76\u663e\u793a\u5176\u540e\u9762\u7684\u4e24\u884c; \u5404\u5339\u914d\u7ed3\u679c\u4e4b\u95f4, \u4ee5\"--\"\u4e0a\u4e0b\u5206\u5272; \u6ce8: \u5fc5\u987b\u8981\u6307\u5b9a\u884c\u6570#\r\n -B #: Before, \u4e00\u5e76\u663e\u793a\u5176\u524d\u7684#\u884c.\r\n -C #: Context, \u4e00\u5e76\u663e\u793a\u4e0a\u4e0b#\u884c.<\/code><\/pre>\n<p>Exp:<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\"> # grep 'root' \/etc\/passwd\r\n root:x:0:0:Liemer,Beijing,110,119:\/root:\/bin\/bash\r\n operator:x:11:0:operator:\/root:\/sbin\/nologin<\/code><\/pre>\n<p>grep\u4e2d\u7528\u5230\u7684\u5f15\u53f7, \u53ea\u8981\u4e0d\u6d89\u53ca\u53d8\u91cf, \u5355\u53cc\u5f15\u53f7\u90fd\u662f\u53ef\u4ee5\u7684; \u5982\u679c\u4e0d\u6d89\u53ca\u5143\u5b57\u7b26, \u5f15\u53f7\u751a\u81f3\u662f\u53ef\u4ee5\u7701\u7565\u7684.<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">shell\u4e2d\u7684\u7279\u6b8a\u5b57\u7b26\u7684\u542b\u4e49: (\u6ce8\u610f\uff0c\u4e0e\u5143\u5b57\u7b26\u7684\u542b\u4e49\u4e0d\u540c)\r\n *: \u4efb\u610f\u957f\u5ea6\u7684\u4efb\u610f\u5b57\u7b26\r\n ?: \u4efb\u610f\u5355\u4e2a\u5b57\u7b26\r\n []: \u6307\u5b9a\u8303\u56f4\u5185\r\n [^]: \u6307\u5b9a\u8303\u56f4\u5916<\/code><\/pre>\n<p>\u6b63\u5219\u8868\u8fbe\u5f0f\uff1aREGular EXPression, REGEXP<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">\u5143\u5b57\u7b26\uff1a\u8868\u793a\u901a\u914d\u6216\u66f4\u52a0\u590d\u6742\u610f\u4e49\u529f\u80fd\u7684\u5b57\u7b26. \u5143\u5b57\u7b26\u4ec5\u4fee\u9970\u5176\u524d\u5b57\u7b26.\r\n1. .: \u5339\u914d\u4efb\u610f\u5355\u4e2a\u5b57\u7b26\r\n # grep 'r..t' \/etc\/passwd\r\n root:x:0:0:Liemer,Beijing,110,119:\/root:\/bin\/bash\r\n operator:x:11:0:operator:\/root:\/sbin\/nologin\r\n ftp:x:14:50:FTP User:\/var\/ftp:\/sbin\/nologin\r\n\r\n2. []: \u5339\u914d\u6307\u5b9a\u8303\u56f4\u5185\u7684\u4efb\u610f\u5355\u4e2a\u5b57\u7b26\uff08\u548cbash\u4e00\u6837\uff09\r\n\r\n3. [^]\uff1a\u5339\u914d\u6307\u5b9a\u8303\u56f4\u5916\u7684\u4efb\u610f\u5355\u4e2a\u5b57\u7b26\uff08\u548cbash\u4e00\u6837\uff09\r\n \u5b57\u7b26\u96c6\u5408\uff1a[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:]\r\n \u8868\u793a: \u6570\u5b57, \u5c0f\u5199\u5b57\u6bcd, \u5927\u5199\u5b57\u6bcd, \u6807\u70b9, \u7a7a\u767d\u5b57\u7b26, \u6240\u6709\u5927\u5c0f\u5199\u5b57\u6bcd, \u5927\u5c0f\u5199\u5b57\u6bcd\u548c\u6570\u5b57.\r\n \u4e0a\u9762\u7684\u53ea\u662f\u5b57\u7b26\u96c6\u5408, \u5b9e\u9645\u8fd0\u7528\u4e2d, \u8fd8\u9700\u8981\u5728\u5916\u5c42\u5305\u88f9\u4e00\u4e2a\u4e2d\u62ec\u53f7[].\r\n # grep '[[:alnum:]]$' b.txt \/\/\u8fc7\u6ee4\u4ee5\u5927\u5c0f\u5199\u5b57\u6bcd\u548c\u6570\u5b57\u7ed3\u5c3e\u7684\u884c\r\n # grep '[[:space:]][[:alnum:]]$' b.txt \/\/\u8fc7\u6ee4\u4ee5\u4e00\u4e2a\u7a7a\u767d\u5b57\u7b26\u7d27\u8ddf\u4e00\u4e2a\u5927\u5c0f\u5199\u5b57\u6bcd\u6216\u6570\u5b57\u7ed3\u5c3e\u7684\u884c.\r\n \r\n4. \u8868\u793a\u5339\u914d\u6b21\u6570\uff08\u8d2a\u5a6a\u6a21\u5f0f: \u9ed8\u8ba4\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5339\u914d\u6a21\u5f0f, \u5c3d\u91cf\u6700\u957f\u5730\u5339\u914d\uff09\uff1a\r\n *: \u5339\u914d\u5176\u524d\u9762\u7684\u5b57\u7b26\u4efb\u610f\u6b21\uff0c\u8fd9\u91cc\u5c31\u4e0eshell\u4e2d\u8868\u793a\u7684\u7684\u610f\u601d\u4e0d\u4e00\u6837\u4e86\r\n .*: \u4efb\u610f\u957f\u5ea6\u7684\u4efb\u610f\u5b57\u7b26\r\n\r\n5. \\?: \u5339\u914d\u5176\u524d\u5b57\u7b260\u6b21\u6216\u80051\u6b21\uff0c\u540c\u6837\u9700\u8981\u8f6c\u4e49\uff0cbash\u4e2d\u7684\uff1f\u8868\u793a\u4efb\u610f\u5355\u4e2a\u5b57\u7b26\r\n \r\n6. \\{m,n\\}: \u5339\u914d\u5176\u524d\u9762\u7684\u5b57\u7b26\u81f3\u5c11m\u6b21\uff0c\u81f3\u591an\u6b21; \u8f6c\u4e49\u662f\u9632\u6b62shell\u89e3\u91ca{}\u4e3a\u547d\u4ee4\u884c\u5c55\u5f00(# touch ~\/{a,b}.txt; $ ls ~ --&gt; a.txt b.txt);\r\n \\{1,\\}: \u81f3\u5c11\u4e00\u6b21, \u591a\u4e86\u4e0d\u9650.\r\n \\{0,3\\}: \u6700\u591a\u4e09\u6b21, \u5c11\u4e86\u4e0d\u9650.\r\n \\: \u8f6c\u4e49\u5b57\u7b26\u7684\u610f\u601d, \u5c31\u662f\u9632\u6b62\u6309\u7167shell\u7684\u683c\u5f0f\u6765\u89e3\u91ca\u76f8\u5173\u7684\u5b57\u7b26, \u800c\u662f\u7528\u6b63\u5219\u7684\u65b9\u6cd5\u6765\u5b9e\u73b0.<\/code><\/pre>\n<p>\u4f8b\u5b50\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">Exp: \u65b0\u5efa\u6587\u672c, \u8f93\u5165\u5982\u4e0b\u5185\u5bb9, \u4e00\u6bb5\u5b57\u7b26\u4e32\u4e00\u884c.\r\n a, b, ab, aab, acb, adb, amnb\r\n\r\n1\uff09\u5339\u914da\u4efb\u610f\u6b21, \u540e\u9762\u8ddf\u4e00\u4e2ab\u7684\u5b57\u7b26\u4e32:\r\n a*b: a\u51fa\u73b0\u4efb\u610f\u6b21, \u540e\u9762\u8ddf\u4e00\u4e2ab;\r\n # grep 'a*b' a.txt\r\n b\r\n ab\r\n aab\r\n acb\r\n adb\r\n amnb\r\n\r\n2\uff09\u5339\u914da\u53ef\u6709\u53ef\u65e0, \u540e\u9762\u8ddf\u4e00\u4e2ab\u7684\u5b57\u7b26\u4e32: a?b: a\u51fa\u73b01\u6b21\u6216\u80050\u6b21. \u6ce8: \u8981\u7528\\\u6765\u8f6c\u610f.\r\n # grep 'a\\?b' a.txt\r\n b\r\n ab\r\n aab\r\n acb\r\n adb\r\n amnb\r\n\r\n3\uff09\u5339\u914da\u5f00\u5934, b\u7ed3\u5c3e, \u4e2d\u95f4\u4efb\u610f\u957f\u5ea6\u4efb\u610f\u5b57\u7b26\u7684\u5b57\u7b26\u4e32. a.*b: \u8d2a\u5a6a\u5339\u914d, a\u5f00\u5934, b\u7ed3\u5c3e, \u4e2d\u95f4\u4efb\u610f\u5b57\u7b26.\r\n # grep 'a.*b' a.txt\r\n ab\r\n aab\r\n acb\r\n adb\r\n amnb\r\n\r\n4\uff09\u5339\u914da\u81f3\u5c11\u4e00\u6b21, \u81f3\u591a\u4e09\u6b21, \u540e\u9762\u8ddf\u4e00\u4e2ab\u7684\u884c:\r\n # grep 'a\\{1,3\\}b' a.txt\r\n ab\r\n aab\r\n \r\n 5\uff09\u7edf\u8ba1\/etc\/inittab\u4e2d\u7a7a\u767d\u884c\u7684\u6570\u91cf.\r\n # grep '^$' \/etc\/inittab |wc -l\r\n 5<\/code><\/pre>\n<p>7. \u4f4d\u7f6e\u951a\u5b9a\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">^: \u951a\u5b9a\u884c\u9996\uff0c\u6b64\u5b57\u7b26\u540e\u9762\u7684\u4efb\u610f\u5185\u5bb9\u5fc5\u987b\u51fa\u73b0\u5728\u884c\u9996\r\n $: \u951a\u5b9a\u884c\u5c3e\uff0c\u6b64\u5b57\u7b26\u524d\u9762\u7684\u4efb\u610f\u5185\u5bb9\u5fc5\u987b\u51fa\u73b0\u5728\u884c\u5c3e\r\n ^$: \u7a7a\u767d\u884c\r\n \r\n Exp\uff1a\r\n 1\uff09\u884c\u9996\u951a\u5b9a.\r\n # grep '^r..t' \/etc\/passwd\r\n root:x:0:0:Liemer,Beijing,110,119:\/root:\/bin\/bash\r\n \r\n 2\uff09\u884c\u5c3e\u951a\u5b9a.\r\n # grep '\/bin\/bash$' \/etc\/passwd\r\n root:x:0:0:Liemer,Beijing,110,119:\/root:\/bin\/bash\r\n cactiuser:x:505:505::\/home\/cactiuser:\/bin\/bash\r\n lius:x:506:506::\/home\/lius:\/bin\/bash\r\n apache:x:498:498::\/home\/apache:\/bin\/bash\r\n openstack:x:509:509::\/home\/openstack:\/bin\/bash\r\n hive:x:5000:5000:Hive:\/home\/hive:\/bin\/bash<\/code><\/pre>\n<p>8. \u5355\u8bcd\u951a\u5b9a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">\\&lt;\u6216\\b: \u951a\u5b9a\u8bcd\u9996\uff0c\u5176\u540e\u9762\u7684\u4efb\u610f\u5b57\u7b26\u5fc5\u987b\u4f5c\u4e3a\u5355\u8bcd\u9996\u90e8\u51fa\u73b0\r\n \\&gt;\u6216\\b: \u951a\u5b9a\u8bcd\u5c3e\uff0c\u5176\u524d\u9762\u7684\u4efb\u610f\u5b57\u7b26\u5fc5\u987b\u4f5c\u4e3a\u5355\u8bcd\u7684\u5c3e\u90e8\u51fa\u73b0\r\n # grep '\\&lt;root' \/etc\/passwd \/\/\u8fc7\u6ee4root\u4f5c\u4e3a\u8bcd\u9996\u7684\u884c\r\n # grep 'root\\&gt;' \/etc\/passwd \/\/\u8fc7\u6ee4root\u4f5c\u4e3a\u8bcd\u5c3e\u7684\u884c\r\n # grep '\\&lt;root\\&gt;' \/etc\/passwd \/\/\u8fc7\u6ee4\u542b\u6709root\u5355\u8bcd\u7684\u884c\uff0c\u5fc5\u987b\u662f\u5355\u8bcd\u3002\r\n\r\nExp: \u7f16\u5199\u6587\u6863:\r\n This is root.\r\n The user is mroot.\r\n rooter is a dog's name.\r\n chroot is a command.\r\n mrooter is not a word.\r\n\r\n1) \u67e5\u627e\u4ee5root\u505a\u4e3a\u8bcd\u5c3e\u7684\u884c.\r\n [root@lius]&lt;~&gt;# grep 'root\\&gt;' a.txt \u6216 grep 'root\\b' a.txt\r\n This is root.\r\n The user is mroot.\r\n chroot is a command.\r\n 2) \u67e5\u627e\u4ee5root\u505a\u4e3a\u8bcd\u9996\u7684\u884c.\r\n [root@lius]&lt;~&gt;# grep '\\&lt;root' a.txt \u6216 grep '\\broot' a.txt\r\n This is root.\r\n rooter is a dog's name.\r\n 3) \u67e5\u627e\u542b\u6709root\u5355\u8bcd\u7684\u884c.\r\n [root@lius]&lt;~&gt;# grep '\\broot\\b' a.txt \r\n This is root.\r\n [root@lius]&lt;~&gt;# grep '\\&lt;root\\&gt;' a.txt<\/code><\/pre>\n<p>9. \u5206\u7ec4:<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">\\(\\): \u5206\u7ec4, \u5c06()\u91cc\u9762\u7684\u5185\u5bb9\u5f53\u505a\u4e00\u4e2a\u6574\u4f53\u6765\u5904\u7406.\r\n \u5206\u7ec4\u7684\u610f\u4e49: \u5206\u7ec4\u4e00\u822c\u7528\u4e8e\u5f15\u7528, \u5373: \u540e\u5411\u5f15\u7528.\r\n \\(ab\\)*: \u5339\u914dab\u51fa\u73b0\u4efb\u610f\u6b21\u7684\u5b57\u7b26\u4e32.\r\n \u540e\u5411\u5f15\u7528: \u5373\u5206\u7ec4\u540e\u7684\u5185\u5bb9, \u540e\u9762\u4e00\u822c\u4f1a\u6709\u76f8\u5e94\u7684\u5143\u5b57\u7b26\u5bf9\u5176\u8fdb\u884c\u5f15\u7528.\r\n \\1: \u5f15\u7528\u7b2c\u4e00\u4e2a\u5de6\u62ec\u53f7\u4ee5\u53ca\u4e0e\u4e4b\u5bf9\u5e94\u7684\u53f3\u62ec\u53f7\u6240\u5305\u62ec\u7684\u6240\u6709\u5185\u5bb9\uff08\u6ce8\u610f\uff1a\u62ec\u53f7\u662f\u53ef\u4ee5\u5d4c\u5957\u7684\uff09\r\n \\2: \u5f15\u7528\u7b2c\u4e8c\u4e2a\u5de6\u62ec\u53f7\u4ee5\u53ca\u4e0e\u4e4b\u5bf9\u5e94\u7684\u53f3\u62ec\u53f7\u6240\u5305\u62ec\u7684\u6240\u6709\u5185\u5bb9\r\n \\3: \u5f15\u7528\u7b2c\u4e09\u4e2a\u5de6\u62ec\u53f7\u4ee5\u53ca\u4e0e\u4e4b\u5bf9\u5e94\u7684\u53f3\u62ec\u53f7\u6240\u5305\u62ec\u7684\u6240\u6709\u5185\u5bb9\r\n\r\nExp\uff1a\u8fc7\u6ee4\u4e00\u884c\u4e2d, \u524d\u9762\u6709\u4e00\u4e2a\u5355\u6b21, \u540e\u9762\u4e5f\u6709\u5305\u542b\u8fd9\u4e2a\u5355\u8bcd\u5185\u5bb9\u7684\u884c.\r\n He love his lover.\r\n She like her liker.\r\n He like his lover.\r\n she love her liker.\r\n\r\n1\uff09\u5339\u914d\u524d\u9762\u4e00\u6bb5\u4ee3\u7801, \u540e\u9762\u51fa\u73b0\u76f8\u540c\u4e00\u6bb5\u4ee3\u7801\u7684\u884c.\r\n # grep 'l..e.*l..e' a.txt\r\n He love his lover.\r\n She like her liker.\r\n He like his lover.\r\n she love her liker.\r\n \u53ef\u89c1, \u4e0a\u9762\u7684\u5339\u914d\u683c\u5f0f, \u4e0d\u80fd\u6ee1\u8db3\u6211\u4eec\u7684\u9700\u6c42.\r\n\r\n\u540e\u5411\u5f15\u7528:\r\n # grep '\\(l..e\\).*\\1' a.txt \/\/l..e\u53ef\u4ee5\u5339\u914dlove\u548clike, \\1\u8868\u793a\u5f15\u7528\u7684\u53d8\u91cf\u7f16\u53f7.\r\n He love his lover.\r\n She like her liker.\r\n \u540e\u9762\u51fa\u73b0\u524d\u9762\u7b2c\u4e00\u4e2a\u62ec\u53f7\u91cc\u9762\u7684\u5185\u5bb9\u7684\u884c, \u624d\u80fd\u8fc7\u6ee4\u51fa.\r\n\r\n2\uff09\u5f15\u7528\u591a\u4e2a\u53d8\u91cf\u5462? \u6587\u672c\u4e2d\u6dfb\u52a0\u4e00\u884c:\r\n she loves her liker. He loves his liker.\r\n \u5f15\u7528\u4e24\u4e2a\u53d8\u91cf:\r\n # grep '\\(l.v\\).*\\(l.k\\).*\\1.*\\2' a.txt\r\n she loves her liker. He loves his liker.\r\n \u8fd9\u91cc\u6709\u989c\u8272\u663e\u793a\u7684\u90e8\u5206\u662f: loves her liker. He loves his lik, \u5f15\u7528\u7684\u7ed3\u679c\u662f\u51c6\u786e\u7684.\r\n \r\n 3\uff09\u8fc7\u6ee4\/etc\/inittab\u4e2d, \u51fa\u73b0\u4e00\u4e2a\u6570\u5b57, \u4e2d\u95f4\u4efb\u610f\u5b57\u7b26, \u4f46\u4ee5\u8fd9\u4e2a\u6570\u5b57\u7ed3\u5c3e\u7684\u884c:\r\n # grep '\\([[:digit:]]\\).*\\1' \/etc\/inittab<\/code><\/pre>\n<p>\u7ec3\u4e60\u9898\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">1\u3001\u663e\u793a\/proc\/meminfo\u6587\u4ef6\u4e2d\u4ee5\u4e0d\u533a\u5206\u5927\u5c0f\u7684s\u5f00\u5934\u7684\u884c\uff1b\r\n grep -i '^s' \/proc\/meminfo\r\n grep '^[sS]' \/proc\/meminfo\r\n \r\n 2\u3001\u663e\u793a\/etc\/passwd\u4e2d\u4ee5nologin\u7ed3\u5c3e\u7684\u884c; \r\n grep 'nologin$' \/etc\/passwd\r\n\r\n\u53d6\u51fa\u9ed8\u8ba4shell\u4e3a\/sbin\/nologin\u7684\u7528\u6237\u5217\u8868\r\n grep \"nologin$' \/etc\/passwd | cut -d: -f1\r\n\r\n\u53d6\u51fa\u9ed8\u8ba4shell\u4e3abash\uff0c\u4e14\u5176\u7528\u6237ID\u53f7\u6700\u5c0f\u7684\u7528\u6237\u7684\u7528\u6237\u540d\r\n grep 'bash$' \/etc\/passwd | sort -n -t: -k3 | head -1 | cut -d: -f1\r\n\r\n3\u3001\u663e\u793a\/etc\/inittab\u4e2d\u4ee5#\u5f00\u5934\uff0c\u4e14\u540e\u9762\u8ddf\u4e00\u4e2a\u6216\u591a\u4e2a\u7a7a\u767d\u5b57\u7b26\uff0c\u800c\u540e\u53c8\u8ddf\u4e86\u4efb\u610f\u975e\u7a7a\u767d\u5b57\u7b26\u7684\u884c\uff1b\r\n grep \"^#[[:space:]]\\{1,\\}[^[:space:]]\" \/etc\/inittab\r\n\r\n4\u3001\u663e\u793a\/etc\/inittab\u4e2d\u5305\u542b\u4e86:\u4e00\u4e2a\u6570\u5b57:(\u5373\u4e24\u4e2a\u5192\u53f7\u4e2d\u95f4\u4e00\u4e2a\u6570\u5b57)\u7684\u884c\uff1b\r\n grep ':[0-9]:' \/etc\/inittab\r\n\r\n5\u3001\u663e\u793a\/boot\/grub\/grub.conf\u6587\u4ef6\u4e2d\u4ee5\u4e00\u4e2a\u6216\u591a\u4e2a\u7a7a\u767d\u5b57\u7b26\u5f00\u5934\u7684\u884c\uff1b\r\n grep '^[[:space:]]\\{1,\\}' \/boot\/grub\/grub.conf\r\n\r\n6\u3001\u663e\u793a\/etc\/inittab\u6587\u4ef6\u4e2d\u4ee5\u4e00\u4e2a\u6570\u5b57\u5f00\u5934\u5e76\u4ee5\u4e00\u4e2a\u4e0e\u5f00\u5934\u6570\u5b57\u76f8\u540c\u7684\u6570\u5b57\u7ed3\u5c3e\u7684\u884c\uff1b\r\n grep '^\\([0-9]\\).*\\1$' \/etc\/inittab\r\n\r\n7\u3001\u627e\u51fa\u67d0\u6587\u4ef6\u4e2d\u7684\uff0c1\u4f4d\u6570\uff0c\u62162\u4f4d\u6570\uff1b\r\n grep '[0-9]\\{1,2\\}' \/proc\/cpuinfo\r\n grep --color '\\&lt;[0-9]\\{1,2\\}\\&gt;' \/proc\/cpuinfo\r\n\r\n8\u3001\u627e\u51faifconfig\u547d\u4ee4\u7ed3\u679c\u4e2d\u76841-255\u4e4b\u95f4\u7684\u6574\u6570\uff1b\r\n\r\n\r\n 9\u3001\u67e5\u627e\u5f53\u524d\u7cfb\u7edf\u4e0a\u540d\u5b57\u4e3astudent(\u5fc5\u987b\u51fa\u73b0\u5728\u884c\u9996)\u7684\u7528\u6237\u7684\u5e10\u53f7\u7684\u76f8\u5173\u4fe1\u606f, \u6587\u4ef6\u4e3a\/etc\/passwd\r\n grep '^student\\&gt;' \/etc\/passwd | cut -d: -f3\r\n id -u student\r\n\r\nstudent1\r\n student2\r\n\r\n10\u3001\u5206\u6790\/etc\/inittab\u6587\u4ef6\u4e2d\u5982\u4e0b\u6587\u672c\u4e2d\u524d\u4e24\u884c\u7684\u7279\u5f81(\u6bcf\u4e00\u884c\u4e2d\u51fa\u73b0\u5728\u6570\u5b57\u5fc5\u987b\u76f8\u540c)\uff0c\u8bf7\u5199\u51fa\u53ef\u4ee5\u7cbe\u786e\u627e\u5230\u7c7b\u4f3c\u4e24\u884c\u7684\u6a21\u5f0f\uff1a\r\n l1:1:wait:\/etc\/rc.d\/rc 1\r\n l3:3:wait:\/etc\/rc.d\/rc 3\r\n grep '^l\\([0-9]\\):\\1.*\\1$' \/etc\/inittab<\/code><\/pre>\n<p>\u6b63\u5219\u8868\u8fbe\u5f0f\uff1aREGEXP, REGular EXPression\uff0c\u5206\u4e3a\u57fa\u672c\u6b63\u5219\u8868\u8fbe\u5f0f\uff08Basic\uff09\u548c\u6269\u5c55\u6b63\u5219\u8868\u8fbe\u5f0f(Extended)<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">grep\u7684\u6269\u5c55\u6b63\u5219\u8868\u8fbe\u5f0f: \u4e0d\u7528\u8131\u4e49\\\r\n grep -E = egrep \r\n \u5b57\u7b26\u5339\u914d\uff1a\u4ee5\u4e0b\u4e09\u79cd, \u6269\u5c55\u548c\u57fa\u672c\u7528\u6cd5\u76f8\u540c, \u6ca1\u6709\u9700\u8981\u8131\u4e49\u7684\u7b26\u53f7.\r\n .\uff1a\u4efb\u610f\u5355\u4e2a\u5b57\u7b26\r\n []\uff1a\u8303\u56f4\u5185\u7684\u4efb\u610f\u5355\u4e2a\u5b57\u7b26\r\n [^]\uff1a\u8303\u56f4\u5916\u7684\u4efb\u610f\u5355\u4e2a\u5b57\u7b26\r\n\r\n\u6b21\u6570\u5339\u914d\u4e2d\uff1a?|{}\u4e0d\u7528\u518d\u8131\u4e49, \u53e6\u5916\u591a\u4e86\u4e00\u4e2a+. \r\n *: \u5176\u524d\u81ea\r\n ?: \u5176\u524d\u5b57\u7b260\u6b21\u6216\u80051\u6b21.\r\n +: \u5339\u914d\u5176\u524d\u9762\u7684\u5b57\u7b26\u81f3\u5c111\u6b21, \u76f8\u5f53\u4e8e\\{1,\\}\r\n {m,n}: \u6307\u5b9a\u8303\u56f4, \u4e0d\u7528\u518d\u8131\u4e49.\r\n\r\n\u4f4d\u7f6e\u951a\u5b9a\uff1a\u548c\u975e\u6269\u5c55\u7684\u7528\u6cd5\u5b8c\u5168\u76f8\u540c\r\n ^: \u884c\u9996\r\n $\uff1a\u884c\u5c3e\r\n \\&lt;, \\b\uff1a\u8bcd\u9996\r\n \\&gt;, \\b\uff1a\u8bcd\u5c3e\r\n\r\n\r\n \u5206\u7ec4\uff1a\u7528\u6cd5\u4e0d\u540c, ()\u4e0d\u518d\u7528\u8131\u4e49\r\n ()\uff1a\u5206\u7ec4\r\n \\1, \\2, \\3, ...\r\n\r\n\u540c\u65f6, \u8fd8\u6269\u5c55\u4e86\u4e00\u4e2a\u5b57\u7b26|, \u8868\u793a\u6216\u8005.\r\n |: or, \u6216\u8005.\r\n C|cat: \u4e0d\u662f\u6307Cat\u6216cat, \u800c\u662fC\u6216cat; \u4e5f\u5c31\u662f\u8bf4, |\u5de6\u53f3\u7684\u4e24\u4e2a\u5b57\u6bb5\u662f\u6216\u8005\u7684\u5173\u7cfb, \u800c\u4e0d\u662f\u53ea\u5339\u914d\u5de6\u53f3\u7684\u524d\u540e\u4e24\u4e2a\u5b57\u7b26.\r\n \u5982\u679c\u8981\u8868\u793a\u524d\u8005\u7684\u610f\u601d, \u5206\u7ec4\u5c31\u663e\u73b0\u51fa\u4f5c\u7528\u4e86, \u5e94\u8be5\u662f(C|c)at.<\/code><\/pre>\n<p>\u6269\u5c55\u793a\u4f8b\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">1\uff09\u627e\u51fa\/boot\/grub\/grub.conf\u6587\u4ef6\u4e2d1-255\u4e4b\u95f4\u7684\u6570\u5b57\uff1b\r\n egrep --color \\&lt;([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt; \/boot\/grub\/grub.conf\r\n egrep --color '\\&lt;[0-9]\\&gt;|\\&lt;[1-9][0-9]\\&gt;|\\&lt;1[0-9][0-9]\\&gt;|\\&lt;2[0-4][0-9]\\&gt;|\\&lt;25[0-5]\\&gt;' \/boot\/grub\/grub.conf\r\n \u8fd9\u91cc, \u7528\u62ec\u53f7\u5206\u7ec4, \u5219\u951a\u5b9a\u8bcd\u9996\u8bcd\u5c3e\u7684\u65f6\u5019\u662f\u5c06\u4e00\u4e2a\u6574\u4f53\u5168\u90e8\u951a\u5b9a; \u5982\u679c\u4e0d\u52a0\u62ec\u53f7, \u5219|\u7b26\u53f7\u4e4b\u540e\u7684\u5e76\u4e0d\u80fd\u951a\u5b9a, \u5927\u4e8e255\u7684\u6570\u503c\u4e5f\u4f1a\u88ab\u8fc7\u6ee4\u51fa\u6765.\r\n\r\n2\uff09ifconfig -a\u7684\u5185\u5bb9, \u4fdd\u5b58\u5230c.txt\u4e2d, \u8fc7\u6ee4ip\u5730\u5740\u7c7b\u7684\u884c.\r\n \u6ce8: \\. --&gt; \u5bf9 \".\" \u8fdb\u884c\u8131\u4e49, \u975e\u5143\u5b57\u7b26., \u53ef\u4ee5\u4ee3\u8868\u4efb\u610f\u4e00\u4e2a\u5b57\u7b26, \u5982\u53ef\u4ee5\u8fc7\u6ee4\u51fa192*168.213.55\r\n\r\nifconfig -a &gt; c.txt\r\n egrep --color '\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;\\.\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;\\.\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;\\.\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;' c.txt\r\n\r\n\u8fd9\u91cc, \u5fc5\u987b\u5bf9([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\u8fdb\u884c\u5206\u7ec4, \u5426\u5219\u8fc7\u6ee4\u7684\u6570\u5b57\u4f1a\u8d85\u51fa\u8303\u56f4.\r\n\r\n\r\n ifconfig | egrep '\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;\\.\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;\\.\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;\\.\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;'\r\n\r\nifconfig | egrep --color '(\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\&gt;\\.){3}\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9] |2[0-4][0-9]|25[0-5])\\&gt;'<\/code><\/pre>\n<p>IPV4\u7684\u5206\u7c7b:<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">IPv4: \u4e00\u51715\u5206\u7c7b, \u4ee5\u9996\u4f4d\u7684\u533a\u95f4\u4e3a\u5206\u7c7b\u6807\u51c6.\r\n 5\u7c7b\uff1aA B C D E, \u6709\u7528\u7684\u53ea\u6709\u4e09\u7c7b.\r\n A\uff1a1-127\r\n B\uff1a128-191\r\n C\uff1a192-223\r\n\r\nIP\u5730\u5740\u7684\u8fc7\u6ee4\u89c4\u5219:\u7b2c\u4e00\u4f4d\u7684\u8303\u56f4\u30101-223\u3011\uff0c\u6bcf\u4e00\u4f4d\u7684\u6700\u5927\u503c\u4e0d\u80fd\u662f255\uff0c\r\n \\&lt;([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\\&gt;(\\.\\&lt;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\\&gt;){2}\\.\\&lt;([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\\&gt;<\/code><\/pre>\n<p><span style=\"color: #ff0000;\"><strong>\u9a6c\u54e5\u7684\u535a\u5ba2\uff1ahttp:\/\/mageedu.blog.51cto.com\/<\/strong><\/span><\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">grep, egrep\uff1a\u9ed8\u8ba4\u7684grep\u662f\u975e\u5e38\u6d6a\u8d39cpu\u7684\u65f6\u949f\u5468\u671f\u7684\u3002\r\nfgrep: fast grep, \u4efb\u4f55\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5b57\u7b26, \u90fd\u5f53\u505a\u666e\u901a\u5b57\u7b26\u6765\u663e\u793a. \u4e0d\u652f\u6301\u6b63\u5219\u8868\u8fbe\u5f0f, \u6240\u4ee5\u6267\u884c\u901f\u5ea6\u5feb. \r\n # echo -e \"r..t\\nroot\" &gt; a.txt\r\n # grep 'r..t' a.txt\r\n r..t\r\n root\r\n # fgrep --color 'r..t' a.txt\r\n r..t<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1a<a href=\"https:\/\/www.liutianfeng.com\">liutianfeng.com<\/a> &raquo; <a href=\"https:\/\/www.liutianfeng.com\/?p=254\">grep-egrep-fgrep\u5bb6\u65cf<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>\u7cfb\u7edf\u5e2e\u52a9\uff1a grep, egrep, fgrep &#8211; print lines matching a patte [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[31],"tags":[],"_links":{"self":[{"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/posts\/254"}],"collection":[{"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=254"}],"version-history":[{"count":5,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/posts\/254\/revisions"}],"predecessor-version":[{"id":412,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/posts\/254\/revisions\/412"}],"wp:attachment":[{"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}