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

前言

Linux系统中搜索、查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索。下面来一起看看Linux利用grep命令检索文件内容的详细介绍。

方法如下:

1、搜索某个文件里面是否包含字符串

命令格式:grep "被查找的字符串" filename1

例如:

grep "0101034175" /data/transaction.20170118.log

2、在多个文件中检索某个字符串

命令格式:

  • grep "被查找的字符串t" filename1 filename2 filename3 ...
  • grep "被查找的字符串" *.log

3、显示所检索内容在文件中的行数,可以使用参数-n

命令格式: grep -n "被查找的字符串" *.log

4、检索时需要忽略大小写问题,可以使用参数“-i”

命令格式: grep -i "被查找的字符串" *.log

5、从文件内容查找不匹配指定字符串的行

命令格式:grep –v "被查找的字符串" 文件名

6、搜索、查找匹配的行数:

命令格式:

  • grep –c "被查找的字符串" 文件名
  • grep "被查找的字符串" 文件名 | wc -l

7、递归搜索某个目录以及子目录下的所有文件

命令格式:grep –r "被查找的字符串" 文件目录

8、获取哪些文件包含搜索的内容,并列出文件名

命令格式:grep -H –r "被查找的字符串" 文件目录 | cut -d: -f1 [| uniq]

例如:

grep -H -r "v\$temp_space_header" /u01/app/Oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1

grep -H -r "v\$temp_space_header" /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq

9、获取与整个搜索字符匹配的内容

命令格式:grep –w "被查找的字符串" 文件名

10、grep命令与find 命令的结合,实现联合检索

命令格式:find . -name '*.sql' -exec grep -i '被检索内容 ' {} \; -print

例如:

find . -name '*.sql' -exec grep -i 'v\$temp_space_header' {} \; -print

Linux grep和find的区别

这是两个不同的命令,关于grep:

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

而linux下的find(具体使用方法可以参考这里:http://www.jb51.net/article/108198.htm)

功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。

语法:find 起始目录 寻找条件 操作

说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

所以简单点说说,grep是查找匹配条件的行,find是搜索匹配条件的文件

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Linux中Git集中操作命令汇总

    SyntaxHighlighter git version # 查看版本 git config -l # 查看当前配置 git config --global user.name "Dean" # 设置用户名,邮箱 git config --global user.email g.xiangyu1990@gmail.com # 设置用户名,邮箱 git config --global alias.ci commit # 设置git命令的别名 git config --global al

  • Linux帮助和用户管理命令

    上篇文章我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而locate是在文件资料库中进行搜索,对比find命令搜索速度快很多,但是新创建的文件如果没有收录到文件资料库中,使用locate命令是搜索不到的,再就是/tmp目录是不收录到文件资料库的,也就是说使用locate命令搜索不到在/tmp目录下的文件.然后我们介绍搜索命令所在的目录以及别名信息which,搜索

  • Linux中date命令转换日期提示date: illegal time format问题解决

    前言 很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作.延时通常用于脚本执行过程中提供一段等待的时间.日期可以以多种格式去打印,也可以使用命令设置固定的格式.在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数. 语法 date(选项)(参数) 但最近在使用中遇到了一个问题,下面来一起看看详细的介绍吧. 问题:运行date命令抛错 date -j -f "%a %b %d %T %Z %Y"

  • linux中ipset命令的使用方法详解

    ipset介绍 iptables是在linux内核里配置防火墙规则的用户空间工具,它实际上是netfilter框架的一部分.可能因为iptables是netfilter框架里最常见的部分,所以这个框架通常被称为iptables,iptables是linux从2.4版本引入的防火墙解决方案. ipset是iptables的扩展,它允许你创建 匹配整个地址sets(地址集合) 的规则.而不像普通的iptables链是线性的存储和过滤,ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行

  • Linux定时执行任务at和crontab命令详解

    Linux下的两种定时执行任务的方法:at命令,以及crontab服务,小编整理了关于这2个命令的详细用法,希望大家学习后能够更加深入的理解. (1)at命令 假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了. 设置at命令很简单,指示定运行的时间,那么就会在哪个时候运行.at类似打印 进程,会把任务放到/var/spool/at目录中,到指定时间运行它 .at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序.at now +

  • Linux中英文命令对应

    很多朋友在论坛上找Linux英文命令,我们给大家整理了比较全的Linux英文命令,并且附上了对应的中文意思. su:Swith user 切换用户,切换到root用户 cat: Concatenate 串联 uname: Unix name 系统名称 df: Disk free 空余硬盘 du: Disk usage 硬盘使用率 chown: Change owner 改变所有者 chgrp: Change group 改变用户组 ps:Process Status 进程状态 tar:Tape

  • java程序员必须要学会的linux命令总结(推荐)

    1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件. find . -name "*.xml" 递归查找所有的xml文件 2.查看一个程序是否运行 ps –ef|grep tomcat 查看所有有关tomcat的进程 3.终止线程 kill -9 19979 终止线程号位19979的进程 pkill -9 java 批量终止java进程 4.查看文件,包含隐藏文件 ls -al 5.当前工作目录 pwd 6.复制文件 c

  • Linux通过sar命令查看网卡流量

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及IPC有关的活动等. sar命令参数很多,有时间man一下. -n参数很有用,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL .DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动

  • 详解Linux中两个查找命令locate和find教程

    Linux中有很多查找命令,今天主要讲解locate,find两个命令. 1.locate locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库. (

  • Linux系统利用cp命令实现强制覆盖功能的方法

    前言 cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误. 语法 cp(选项)(参数) 选项 -a:此参数的效果和同时指定"-dpR"参数相同: -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录: -f:强行复制文件或目录,不论目标文件或目录是

  • Linux企业运维人员常用的150个命令分享

    本文将向大家介绍Linux企业运维人员常用的150个命令,如有不足之处,还望海涵.当然更希望大家留言指出.希望对大家有所帮助! 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息. cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录. cp 全拼copy,其功能

  • expect命令在linux下实现批量ssh免密

    有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yes/no 或者password等,expect脚本命令就是用于在提示这些的时候,自动为我们输入相应的文字. expect脚本 先看一段shell脚本,实现了ssh自动连接 #!/usr/bin/expect spawn ssh 192.168.1.241 expect "password" send "123456\r" expect &quo

  • linux下svn版本控制的常用命令大全

    1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3.将改动的文件提交到版本库 svn commit -m "LogMessage" [-N] [-

  • Linux十个新手命令分享

    Linux对我们的生活有着很大的影响.对于新手来说,头一次入手Linux只会让你觉得不适.因为在Linux上,你通常应该使用终端命令,而不是只要点击启动器图像(就像你在Windows上操作那样).不过别担心,本文介绍的这10个基本的Linux命令和重要命令会帮助你尽快入门. Linux对我们的生活有着很大的影响.至少,你的安卓手机上面就有Linux内核.然而,头一次入手Linux只会让你觉得不适.因为在Linux上,你通常应该使用终端命令,而不是只要点击启动器图像(就像你在Windows上操作那

  • 简述Linux文本处理命令“sed”

    文本处理编辑命令sed sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. 命令格式: sed [选项] '(截取的

  • Linux磁盘格式化命令详解

    命令:mke2fs mke2fs [选项] 文件系统 磁盘盘符= 注释: 1.磁盘虽然分好区了,但是还不能用,还需要在这每一个分区上格式化,所谓格式化,其实就是安装文件系统,Windows下的文件系统有Fat32.NTFS,CentOS使用的文件系统为ext,之前centOS5版本使用ext3作为默认的文件系统,而CentOS6使用ext4作为默认的文件系统: 2.当用man查询这四个命令的帮助文档时,你会发现我们看到了同一个帮助文档,这说明四个命令是一样的: 3.指定文件系统格式为ext4,该

  • linux 操作 ftp 常用命令

    简介: FTP(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层.FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录.  概述: FTP是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输.FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unencode一样.但是,FTP

随机推荐