`

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 字符串操作

    在 Linux 中,可以使用 `expr index` 或者 `awk match` 来查找字符串中特定字符的位置。 1. **使用 `expr index`:** ```bash $ expr index "$var" t 3 ``` `expr index` 用于查找指定字符在字符串中的位置。 ...

    linux 查找文件命令.pdf

    ### Linux查找文件的相关命令详解 在Linux环境中,熟练掌握文件查找命令对于系统管理和日常操作至关重要。本文将基于提供的文档信息,详细介绍几个常用的Linux文件查找命令:`locate`、`find`以及其他的辅助命令如`...

    Linux_sed_批量替换字符串方法

    ### Linux sed 批量替换字符串方法详解 #### 一、sed简介 `sed`(stream editor)是一款功能强大的文本处理工具,在Linux系统中被广泛应用于批量处理文本文件,特别是进行字符串查找、替换等操作。本文将详细介绍...

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

    ### Linux中利用grep命令检索文件内容详解 #### 前言 在Linux系统中,进行文件内容搜索是一项常见的任务。为了高效地完成这项任务,Linux提供了多种工具,其中`grep`命令是最为常用的一种。本篇文章将深入探讨如何...

    linux 下查找文件或者内容常有命令

    4. 在某个目录下查找包含 “zh_CN” 字符串的所有文件: ```bash grep -r "zh_CN" . ``` 以上命令展示了 `whereis`、`locate` 和 `find` 命令的强大功能,这些命令可以帮助我们在Linux系统中高效地查找文件和...

    在文件中或输入中查找字符

    例如,如果我们要在文件"example.txt"中查找字符串"hello",可以使用以下命令: ```shell find "hello" example.txt ``` 如果要用`findstr`命令,可以这样: ```shell findstr "hello" example.txt ``` **2. `find`...

    linux-文件查找和内容过滤命令

    2. **搜索当前目录下所有文件中包含特定字符串的行**: ```bash $ grep data * ``` 3. **搜索所有C程序源文件中包含特定字符串的行**: ```bash $ grep goto *.c ``` 4. **从文件中读取多个搜索模式**: ```...

    Linux查找包含指定文字的文件(linux查找指定文件)

    ### Linux查找包含指定文字的文件方法详解 #### 一、引言 在日常工作中,我们经常需要在Linux系统中查找包含特定字符串的文件。这对于快速定位文件或进行文本处理非常有用。本文将详细介绍如何在Linux环境下查找...

    [linux下的find文件查找命令与grep文件内容查找命令]linuxfindgrep.docx

    **grep** 命令用于在文件中搜索指定的字符串或模式,并输出包含该字符串或模式的行。它是基于文件内容进行查找的命令。 ##### 1. 基本格式 ```bash grep expression file ``` - **expression**: 要查找的模式或...

    Linux C字符串替换函数实例详解

    在Linux C编程中,处理字符串是一项常见的任务,而字符串替换函数是其中的关键组成部分。本文将深入探讨一个具体的C语言实现的字符串替换函数实例,帮助理解如何在C程序中实现这一功能。 首先,我们来看一下提供的...

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

    ### Linux Shell 字符串操作详解 在Linux shell编程中,字符串操作是一项基本且重要的技能,尤其是在处理文本数据或构建复杂的脚本时。本文将详细介绍如何在Linux shell中进行字符串的操作,包括获取字符串长度、...

    LinuxC函数详解

    - `strrchr` 查找字符串中最后一个出现的指定字符; - `strstr` 查找字符串中第一个出现的子串; - `strtok` 用于字符串分割,用来分割字符串为一系列的标记。 内存配置函数部分,提供了操作内存空间的函数,例如:...

    Linux查询并删除文件 讲解

    - 使用`find`命令结合通配符查找包含特定字符串的所有文件: ``` find /project/path -type f -name "*specific_string*" ``` 2. **确认文件** - 将查询结果打印出来,手动检查是否有误: ``` find /project...

    linux文件操作

    基本用法是`cat file1 file2 ...`,它会将所有文件的内容连续输出。 #### 常见选项 - `-A`: 显示非打印字符 - `-n`: 显示行号 - `-b`: 显示非空行号 - `-s`: 合并重复空白行 - `-t`: 显示制表符为^I - `-T`: 显示...

    java去除字符串中的空格、回车、换行符、制表符的小例子.docx

    ### Java去除字符串中的空格、回车、换行符、制表符的知识点详解 #### 一、背景介绍 在日常的软件开发过程中,我们经常需要处理来自各种来源的文本数据,例如用户输入、文件读取等。这些数据中常常会包含空格、...

    linux查找日志技巧

    ### Linux查找日志技巧详解 #### 一、引言 在Linux系统中,日志文件是维护和诊断问题的重要工具之一。通过对日志文件的有效管理与检索,可以帮助系统管理员快速定位问题并解决故障。本文将详细介绍Linux环境下常用...

    Linux-C.rar_linux C函数_linux 包含文件

    标准C库提供了诸如字符串处理、内存管理、输入/输出等基本功能,而Linux系统库则提供了如文件系统操作、进程管理、网络编程等与操作系统紧密相关的函数。例如,`open()`函数用于打开文件,`fork()`用于创建子进程,`...

    linux脚本编程中的sed详解

    - 示例:`cat file | sed 's/abc/def/g' | grep 'def'` 首先使用sed替换所有“abc”为“def”,然后使用grep筛选出包含“def”的行。 ### 总结 sed是一款功能强大的文本处理工具,在Linux脚本编程中有着广泛的...

Global site tag (gtag.js) - Google Analytics