首页 > 系统相关 >Linux之查找过滤(tail、grep、find)

Linux之查找过滤(tail、grep、find)

时间:2023-09-13 09:58:40浏览次数:52  
标签:文件 grep Number tail 查找 Linux 匹配 find

参考:https://www.cnblogs.com/caoweixiong/p/15218826.html

tail

基本格式

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

参数解释

-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称

grep

grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

基本格式

grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN]...  [-f FILE]...  [FILE...]

参数解释

OPTIONS:
    -e: 使用正则搜索
    -i: 不区分大小写
    -v: 查找不包含指定内容的行
    -w: 按单词搜索
    -c: 统计匹配到的次数
    -n: 显示行号
    -r: 逐层遍历目录查找
    -A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行
    -B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行
    -C: 显示匹配行前后多少行,   如: -C3, 则表示显示批量行前后3行
    --color: 匹配到的内容高亮显示
    --include: 指定匹配的文件类型
    --exclude: 过滤不需要匹配的文件类型

pattern主要参数

\: 忽略正则表达式中特殊字符的原有含义。
^: 匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<: 从匹配正则表达 式的行开始。
\>: 到匹配正则表达式的行结束。
[ ]: 单个字符,如[A]即A符合要求 。
[ - ]: 范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.: 所有的单个字符。
*: 有字符,长度可以为0。

示例

grep 'forest' f.txt     #文件查找
grep 'forest' f.txt cpf.txt #多文件查找
grep 'log' /home/admin -r -n #目录下查找所有符合关键字的文件
grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后缀
grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配

find

find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。

基本格式

find pathname -options [-print -exec -ok ...]

参数解释

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print:find命令将匹配的文件输出到标准输出。
-exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

find[options]命令选项:
-name:按照文件名查找文件。
-perm:按照文件权限来查找文件。
-prune:使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user:按照文件属主来查找文件。
-group:按照文件所属的组来查找文件。
-mtime -n +n:按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup:查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser:查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件。
-type

示例

find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
find /etc -name 'srm'  #使用通配符(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
find . -name 'srm'   #表示当前目录下查找文件名开头是字符串‘srm’的文件


find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
find / -atime -2   # 查找在系统中最后48小时访问的文件
find / -empty   # 查找在系统中为空的文件或者文件夹
find / -group cat   # 查找在系统中属于group为cat的文件
find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
find / -mtime -1   #查找在系统中最后24小时里修改过的文件
find / -user fred   #查找在系统中属于fred这个用户的文件
find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
find / -size -1000k   #查找出小于1000KB的文件

标签:文件,grep,Number,tail,查找,Linux,匹配,find
From: https://www.cnblogs.com/hasome/p/17698719.html

相关文章

  • rtlinux 高精度定时 转载的文章
    主要是RTLinux环境下编程总结,在嵌入版发过,没几个人响应。做过一个有关RTLinux的项目,时间一长,差不多忘光了,现在尽量把原来做过的东西总结一下,以备后用,同时正在做类似项目的一个借鉴平台主机:redhat8.0 目标机:PC104模块、ISA总线脉冲输出、实时串口通信      linux-2.4.18......
  • linux shell 字符串变量 有双引号和无双引号的区别
     001、[root@pc1test02]#lsa.shb.sh[root@pc1test02]#cata.sh##测试程序1#!/bin/bashstr1="ab_cd_ef"tmp1=$(echo$str1|sed's/_/\n/g')echo$tmp1[root@pc1test02]#catb.sh##测试程序2#!/bin/bashstr1="ab_......
  • linux 中依据某列展开为多行
     001、方法1[root@pc1test01]#lsa.txttest.sh[root@pc1test01]#cata.txt##测试数据,依据最后一列展开为多行chrY26578792658063CTCF652GM19239chrY26644242664734CTCF185hL-hESC,HepG2,HUVECchrY26682772668694CTCF......
  • Linux-"cp: omitting directory"解决办法
    问题描述在Linux系统使用cp(复制命令)复制目录时,常出现错误“cp:omittingdirectory"dir"”(dir是需要复制的目录名称),是因为dir目录下存在其他目录或文件存在,不可只使用cp命令实现复制操作;解决方法使用cp命令时,加上-r选项,此选项指“递归持续复制,用於目录的复制行为”。例如:cp-......
  • mpam linux kernel源码分析
    MPAM(MemorySystemResourcePartitioningandMonitoring)是Armv8.4的feature,用于cache和内存带宽的监控和限制。截至现在,该feature在linuxkernel的实现还在推进,最新一版参见https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/log/?h=mpam/snapshot/v6.5-rc1。......
  • Linux操作系统下安装与配置MySQL
    一、安装与配置[root@mysql1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)https://downloads.mysql.com/archives/community/#下载地址[root@mysql1tools]#rpm-ivhmysql-community-client-5.7.18-1.el7.x86_64.rpm警告:mysql-community-client-5.......
  • 如何在 Linux 中使用 Chage 命令,修改Linux系统用户密码更改策略
    Chage是一个用于修改Linux系统用户密码更改策略的命令行工具。在本文中,我们将介绍如何在Linux系统中使用Chage命令。检查用户密码过期信息使用Chage命令可以检查用户密码更改策略和过期信息。要检查特定用户的密码过期信息,可以使用以下命令:sudochage-l用户名例如,要检查名为......
  • 在 Linux 上使用 Pigz 更快地压缩文件,真的快!
    Pigz是一款快速压缩文件的工具,它能够使用多个CPU核心进行压缩,使得压缩速度得到了极大的提升。在本文中,我们将介绍如何在Linux上使用Pigz来更快地压缩文件。安装Pigz在开始使用Pigz之前,我们需要先安装它。在大多数Linux发行版中,Pigz可以通过包管理器来安装。例如,在Ubuntu中,可以使......
  • 【linux】把进程绑定到特定cpu核上运行
    目的某个进程需要较高的运行效率时,就有必要考虑将其绑定到单独的核上运行,以减小由于在不同的核上调度造成的开销。把某个进程/线程绑定到特定的cpu核上后,该进程就会一直在此核上运行,不会再被操作系统调度到其他核上。但绑定的这个核还是可能会被调度运行其他应用程序的。命令......
  • Linux 中的 /dev/random 和 /dev/urandom 是什么?
    在Linux系统中,/dev/random和/dev/urandom是两个特殊的设备文件,用于生成随机数。在本文中,我们将深入探讨这两个设备文件的区别,以及它们在Linux系统中的作用。/dev/random/dev/random是一个随机数生成器设备文件,用于生成高质量的随机数。它通过收集系统上的环境噪声(例如硬件噪声,磁......