家有俩福娃 發表於 2023-8-21 00:00:00

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

<p>
        <span><strong>前言</strong></span></p>
<p>
        Linux系统中搜索、查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索。下面来一起看看Linux利用grep命令检索文件内容的详细介绍。</p>
<p>
        <span><strong>方法如下:</strong></span></p>
<p>
        <strong>1、搜索某个文件里面是否包含字符串</strong></p>
<p>
        命令格式:grep "被查找的字符串" filename1</p>
<p>
        例如:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_921048">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">grep</code> <code class="bash string">"0101034175"</code> <code class="bash plain">/data/transaction</code><code class="bash plain">.20170118.log</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>2、在多个文件中检索某个字符串</strong></p>
<p>
        命令格式:</p>
<ul>
<li>
                grep "被查找的字符串t" filename1 filename2 filename3 ...</li>
        <li>
                grep "被查找的字符串" *.log</li>
</ul>
<p>
        <strong>3、显示所检索内容在文件中的行数,可以使用参数-n</strong></p>
<p>
        命令格式: grep -n "被查找的字符串" *.log</p>
<p>
        <strong>4、检索时需要忽略大小写问题,可以使用参数“-i”</strong></p>
<p>
        命令格式: grep -i "被查找的字符串" *.log</p>
<p>
        <strong>5、从文件内容查找不匹配指定字符串的行</strong></p>
<p>
        命令格式:grep –v "被查找的字符串" 文件名</p>
<p>
        <strong>6、搜索、查找匹配的行数:</strong></p>
<p>
        命令格式:</p>
<ul>
<li>
                grep –c "被查找的字符串" 文件名</li>
        <li>
                grep "被查找的字符串" 文件名 | wc -l</li>
</ul>
<p>
        <strong>7、递归搜索某个目录以及子目录下的所有文件</strong></p>
<p>
        命令格式:grep –r "被查找的字符串" 文件目录</p>
<p>
        <strong>8、获取哪些文件包含搜索的内容,并列出文件名</strong></p>
<p>
        命令格式:grep -H –r "被查找的字符串" 文件目录 | cut -d: -f1 [| uniq]</p>
<p>
        例如:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_25925">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">grep</code> <code class="bash plain">-H -r </code><code class="bash string">"v\$temp_space_header"</code> <code class="bash plain">/u01/app/Oracle/product/11</code><code class="bash plain">.1.0</code><code class="bash plain">/dbhome_1/rdbms/admin/</code> <code class="bash plain">| </code><code class="bash functions">cut</code> <code class="bash plain">-d: -f1</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">grep</code> <code class="bash plain">-H -r </code><code class="bash string">"v\$temp_space_header"</code> <code class="bash plain">/u01/app/oracle/product/11</code><code class="bash plain">.1.0</code><code class="bash plain">/dbhome_1/rdbms/admin/</code> <code class="bash plain">| </code><code class="bash functions">cut</code> <code class="bash plain">-d: -f1 | </code><code class="bash functions">uniq</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>9、获取与整个搜索字符匹配的内容</strong></p>
<p>
        命令格式:grep –w "被查找的字符串" 文件名</p>
<p>
        <strong>10、grep命令与find 命令的结合,实现联合检索</strong></p>
<p>
        命令格式:<code>find . -name '*.sql' -exec grep -i '</code>被检索内容<code> ' {} \; -print</code></p>
<p>
        例如:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_980637">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">find</code> <code class="bash plain">. -name </code><code class="bash string">'*.sql'</code> <code class="bash plain">-</code><code class="bash functions">exec</code> <code class="bash functions">grep</code> <code class="bash plain">-i </code><code class="bash string">'v\$temp_space_header'</code> <code class="bash plain">{} \; -print</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <span><strong>Linux grep和find的区别</strong></span></p>
<p>
        <strong>这是两个不同的命令,关于grep:</strong></p>
<p>
        Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。</p>
<p>
        <strong>而linux下的find</strong>(具体使用方法可以参考这里:http://www.jb51.net/article/217260.html)</p>
<p>
        功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。</p>
<p>
        语法:find 起始目录 寻找条件 操作</p>
<p>
        说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。</p>
<p>
        所以简单点说说,grep是查找匹配条件的行,find是搜索匹配条件的文件</p>
<p>
        <span><strong>总结</strong></span></p>
<p>
        以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
        原文链接:http://www.linuxidc.com/Linux/2017-11/148390.htm</p>
頁: [1]
查看完整版本: Linux中利用grep命令如何检索文件内容详解