`

linux 查找出包含某个字符串的所有文件的方法详解

阅读更多

一、find查找用法

find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

find默认的寻找路径为当前目录,并且默认的表达式为-print

 

1、列出某个路径下所有文件,包括子目录。

find /data -name “*”

2、查找在某个路径下所有包含“test abc”字符串的文件

find /data -name “*” | xargs grep “test abc”

3、-name:按照文件名查找

find /data -name “*.txt”

4、-perm:按照权限查找文件
find /data -perm 755  查找权限为755的文件

5、-user和-nouser
find /data -user zhao -print 查找文件属主是zhao的文件
find /data -nouser -print 查找文件属主已经被删除的文件
6、-group和-nogroup
find /data -group test -print 查找文件群组是zhao的文件
7、按照时间
find /data -mtime -5 -print 文件更改时间在5天内的文件
find /data -mtime +3 -print 文件更改时间在3天前的文件
find /data -newer file1 -print 查找比文件file1新的文件
8、按照类型查找
find /data -type d -print 查找所有目录
9、按照大小
find /data -size +1000000C -print 查找文件大小大于1000000字节(1M)的文件
10、查找位于本文件系统里面的文件
find /data -name “*.txt” -mount -print
-exec,-ok:find命令对于匹配文件执行该参数所给出shell命令,相应命令形式为: ‘command’ {} \;
-ok 在执行命令前要确认
find /data -type f -exec ls -l {} \;
find /data -name “*.log” -mtime +5 -ok rm {} \;
find /data -name core -exec rm {} \;

 

注意:-exec 在{}和\之间必须要有空格,同时\;之间不能有空格,否则会报上面的错。 

使用-x dev参数
防止find搜索其他分区
find . -size 0 -exec rm {} \;
删除尺寸为0的文件
11. xargs与-exec功能类似
find /data -type f |xargs grep -i “Mary”
在所有文件中检索字符串Mary
ls *~ |xargs rm -rf 删除所有以~结尾的文件

二、grep用法

Usage: grep [OPTION]... PATTERN [FILE]..

Regexp selection and interpretation:

  -E, --extended-regexp     PATTERN is an extended regular expression (ERE)

  -F, --fixed-strings       PATTERN is a set of newline-separated fixed strings

  -G, --basic-regexp        PATTERN is a basic regular expression (BRE)

  -P, --perl-regexp         PATTERN is a Perl regular expression

  -e, --regexp=PATTERN      use PATTERN for matching

  -f, --file=FILE           obtain PATTERN from FILE

  -i, --ignore-case         ignore case distinctions

  -w, --word-regexp         force PATTERN to match only whole words

  -x, --line-regexp         force PATTERN to match only whole lines

  -z, --null-data           a data line ends in 0 byte, not newline

 

Miscellaneous:

  -s, --no-messages         suppress error messages

  -v, --invert-match        select non-matching lines

  -V, --version             print version information and exit

      --help                display this help and exit

      --mmap                ignored for backwards compatibility

 

Output control:

  -m, --max-count=NUM       stop after NUM matches

  -b, --byte-offset         print the byte offset with output lines

  -n, --line-number         print line number with output lines

      --line-buffered       flush output on every line

  -H, --with-filename       print the filename for each match

  -h, --no-filename         suppress the prefixing filename on output

      --label=LABEL         print LABEL as filename for standard input

  -o, --only-matching       show only the part of a line matching PATTERN

  -q, --quiet, --silent     suppress all normal output

      --binary-files=TYPE   assume that binary files are TYPE;

                            TYPE is `binary', `text', or `without-match'

  -a, --text                equivalent to --binary-files=text

  -I                        equivalent to --binary-files=without-match

  -d, --directories=ACTION  how to handle directories;

                            ACTION is `read', `recurse', or `skip'

  -D, --devices=ACTION      how to handle devices, FIFOs and sockets;

                            ACTION is `read' or `skip'

  -R, -r, --recursive       equivalent to --directories=recurse

      --include=FILE_PATTERN  search only files that match FILE_PATTERN

      --exclude=FILE_PATTERN  skip files and directories matching FILE_PATTERN

      --exclude-from=FILE   skip files matching any file pattern from FILE

      --exclude-dir=PATTERN  directories that match PATTERN will be skipped.

  -L, --files-without-match  print only names of FILEs containing no match

  -l, --files-with-matches  print only names of FILEs containing matches

  -c, --count               print only a count of matching lines per FILE

  -T, --initial-tab         make tabs line up (if needed)

  -Z, --null                print 0 byte after FILE name

 

grep与正则表达式同用
grep “^[^abc]” *.f 提取行首不是abc的行
grep “[0-9]\{3\}[8]” *.f 提取类似xxx8的行,x表示任意数字
grep “a\{2\}” *.f 显示a至少出现两次的行,注意grep是以行处理单位的
grep -n “^$” file 列出空行的行号
-E参数,可以使用”与”和”或”模式
grep -E “abc | def” *.f 显示包含abc或者def的行
ex:
ls -l | grep “^$” 显示目录
ls -l | grep “^d” 显示文件
ls -l | grep “^d..x..x..x” 显示特定权限的目录

 

 

0
2
分享到:
评论

相关推荐

    入门学习Linux常用必会60个命令实例详解doc/txt

    在Linux 和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux...

    linux shell 字符串操作(长度,查找,替换)详解

    主要介绍了linux shell 字符串操作(长度,查找,替换)详解,需要的朋友可以参考下

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

    1、搜索某个文件里面是否包含字符串 命令格式:grep “被查找的字符串” filename1 例如: grep 0101034175 /data/transaction.20170118.log 2、在多个文件中检索某个字符串 命令格式: grep “被查找的字符串t” ...

    linux常用命令大全及详解.zip

    grep:在文件中查找指定的字符串。 find:在文件系统中查找文件或目录。 chmod:修改文件或目录的权限。 chown:修改文件或目录的所有者。 chgrp:修改文件或目录的所属组。 tar:打包和解包文件。 gzip:压缩文件。...

    linux中使用grep命令详解

    Linux grep命令用于查找文件里符合条件的字符串;也可以用于查找内容包含指定的范本样式的文件。它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并输出含有该字符串的...

    LinuxC函数详解

    功能说明:查找字符串中最后一个出现的指定字符。 相关函数:index,memchr,rindex,strpbrk,strspn,strstr,strtok 头文件:#include 函数声明:char*strrchr(const char*s,int c); 函数说明:strrchr()用来找...

    Linux egrep命令用法详解

    Linux egrep命令用于在文件内查找指定的字符串。 egrep执行效果与”grep-E”相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。 egrep是用extended regular expression语法来解读的,而...

    Linux look命令用法详解

    您仅需给予它欲查询的字首字符串,它会显示所有开头字符串符合该条件的单字。 语法 look [-adf][-t][字首字符串][字典文件] 参数说明: -a 使用另一个字典文件web2,该文件也位于/usr/dict目录下。 -d 只对比英文...

    Linux find命令用法详解

    任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 语法 find path -option [ -print ...

    Linux grep 命令用法详解

    Linux grep 命令用于查找文件里符合条件的字符串。 grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何...

    Linux 正则表达式详解

    在说linux正规表达式之前,还介绍下linux中查找文本文件常用的三个命令: 1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本。 2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来...

    Linux使用教程(教程)

    ※字符串比较运算符 80 ※整数比较运算符 81 ※布尔运算符 83 3.流程控制 86 ※3.1 if 86 ※3.2.case 87 ※3.3. selsect 88 ※3.4.loop 89 ※3.5. Here documents 90 ※3.6函数 90 ※4.命令行参数 91 九、shell 十三...

    cmd操作命令和linux命令大全收集

    例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件 del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q ...

    shell模糊匹配与正则详解

    它的主要功能是文本查询和字符串操作。 正则表达式的基本元素包括普通字符和元字符,在Linux shell里面,常用的正则表达式元字符集为:S={* . ^ $ [] \ \<\> \{\} \{n,\} \{n,m\} },每一个元字符都有...

    详解 Shell中的grep命令

    如果您要在几个文本文件中查找一字符串,可以使用‘grep’命令。‘grep’在文本中搜索指定的字符串。举个例子:假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件: $ grep magic /usr...

    Linux jed命令用法详解

    Linux jed命令 Linux jed命令用于编辑文本文件。...-s 查找并移到指定的字符串。 实例 jed主要用于编辑程序的源码,编辑源码时将以彩色高亮的方式显示程序的语法。例如使用jed编辑一个C语言的源代码文

    Linux rgrep命令用法详解

    Linux rgrep命令用于递归查找文件里符合条件的字符串。 rgrep指令的功能和grep指令类似,可查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设rgrep指令会把含有范本样式的那一列...

    php在linux中可能用到的命令(推荐)

    您可能感兴趣的文章:linux touch,chattr指令详解及用法详解Linux命令修改文件的三个时间Linux C字符串替换函数实例详解linux 详解useradd 命令基本用法Linux shell命令帮助格式详解Linux shell

    利用Shell脚本循环读取文件中每一行的方法详解

    本文主要给大家介绍了关于使用Shell脚本循环读取文件每一行的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、使用for循环 for line in `cat filename` do echo $line done ...

    linux grep正则表达式与grep用法详解

    功能:输入文件的每一行中查找字符串。 基本用法: grep [-acinv] [–color=auto] [-A n] [-B n] ‘搜寻字符串’ 文件名 参数说明: -a:将二进制文档以文本方式处理 -c:显示匹配次数 -i:忽略大小写差异 -n:在行...

Global site tag (gtag.js) - Google Analytics