linux中find命令、正则表达式、三剑客之grep基本使用

技术linux中find命令、正则表达式、三剑客之grep基本使用 linux中find命令、正则表达式、三剑客之grep基本使用一、find命令的基本使用find 命令主要用于查找目录和文件,可以指定

linux下三剑客的find命令、正则表达式和grep的基本用法

一、find命令的基本使用

find 命令主要用于查找目录和文件,可以指定多种参数进行匹配

用法:find +查找路径 +命令参数 [输出形式]

查找路径:告诉find在哪查找

命令参数:指定要查找的文件属性,属性包括多种,类型、名称、大小、修改时间等等

1、常用的参数

参数:

-名称:按名称查找文件。

*:通配符

-iname :按名称搜索文件(忽略大小写)

-大小:根据文件大小查询文件。

:大于

-:小于

无符号:等于

-mtime :根据修改时间进行查询。

(可省略):N天前

-:n天内

-阿提米

-ctime

-用户:根据用户的所有者进行查询

-group :根据用户所属的组进行查询。

-类型:按文件类型查询

d:文件夹

L :链接文件

S :套接字文件

管道文件

C :字符文件

b:磁盘文件

F :普通文件

-perm :根据文件的权限查询

-inum :根据索引节点号进行查询。

-a : and(可以省略,默认为and)

-o :或

-maxdepth :目录查询深度(必须放置第一个参数位)

-exec :将find处理的结果提供给其他命令继续处理。

知识储备:

Dd :生成文件

如果:你在哪里读的?

你写什么文件?

bs :每次写多少?

数数:写了多少次?

案例:

找到。-maxdepth 1 -name '1.txt' #直接指定文件名搜索,-maxdepth 1表示最大搜索级别为一级目录。

找到。-maxdepth 1 -name '*。txt' #查找以结尾的文件。当前目录中的。

找到。-maxdepth 1 -name '*。txt' #查找以结尾的文件。当前目录中的。

找到。-maxdepth 1-name' [0-9] *。txt' #查找以数字开头的文件。

找到。-maxdepth 1 -mtime -5 #在当前目录中查找5天内修改过的文件。

找到。-maxdepth 1 -mtime 5 #查找当前目录中修改时间超过5天的文件。

找到。-maxdepth 1 -type d #在当前目录中查找类型为directory的文件,并在最高级查找第一级目录(它将查找隐藏目录)

案例知识: xargs 将管道前命令的执行结果当作参数逐个传递后管道后的命令

Ls [a-z]。txt | xargs -n1 -i{} mv {} {}。bak #在当前目录中以单个字母命名的txt文件中添加. bak后缀,-n1表示逐个处理一个对象,-I {}用{}、mv {}{}替换上一个对象。贝克。

二、正则表达式

正则表达式是一种字符模式,用于在查找过程中匹配制定的字符

元字符通常在Linux中分为两类:Shell元字符,由Linux Shell进行解析;

元字符通常在Linux中分为两类:Shell元字符,由Linux Shell进行解析;

正则表达式一般以文本行进行处理

正则表达式元字符

特殊的元字符

性格;角色;字母

解释

可安装文件系统

它由一个或三个组成(我们经常使用空格)

中国国家铁路(China Railway)

由 产生=设定变量$取变量值或取运算值重定向 stdout重定向 stdin|管道符号管道’|'可将命令的结果输出给另一个命令作为输入之用:重导向 file descriptor ,或将命令置于背景执行( )将其内的命令置于 nested subshell 执行,或用于运算或命令替换{ }将其内的命令置于 non-named function 中执行,或用在变量替换的界定范围;在前一个命令结束时,而忽略其返回值,继续执行下一个命令在前一个命令结束时,若返回值为 true,继续执行下一个命令||在前一个命令结束时,若返回值为 false,继续执行下一个命令!运算意义上的非(not)的意思#注释,常用在脚本中\转义字符,去除其后紧跟的元字符或通配符的特殊意义

扩展的正则表达式

案例:

	案例1:在/etc/passwd文件中,匹配以ftp开头的行
		grep '^ftp' /etc/passwd
	案例2:在/etc/passwd文件中,匹配以bash结尾的行
		grep 'bash$' /etc/passwd
	案例3:匹配本机中有哪些ip
		ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
	案例4:要求将/etc/fstab中的去掉包含 # 开头的行,且要求 # 后至少有一个空格
		grep -vE '^#\ +' /etc/fstab
	案例5:找出文件中至少有一个空格的行
		grep -E '\ +' xxx
	案例6:将 nginx.conf 文件中以#开头的行和空行,全部删除 
		grep -vE '^\ *#|^$' /etc/nginx/nginx.conf

三、linux三剑客之grep

  • Linux 最重要的三个命令在业界被称为三剑客,它们是:awksedgrep

    • 我们在使用 Linux 系统中,grep 命令的使用尤为频繁,熟练掌握 grep 的常见用法,能够极大地提高你的工作效率。

    • grep 命令是一种强大的文本搜索工具,它能使用正则表达式,按照指定的模式去匹配,并把匹配的行打印出来。需要注意的是,grep 只支持匹配而不能替换匹配的内容

# linux三剑客之一,文本过滤器(根据文本内容过滤文件)。
语法格式:
	grep [参数] [匹配规则] [操作对象]

案例:文章中的示例 需要一个样例文件,文件内容如下

1. 把包含 syslog 的行过滤出来

2. 把以 ntp 开头的行过虑出来

3. 把匹配 ntp 的行以及下边的两行过滤出来

4. 把包含 syslog 及上边的一行过滤出来

5. 把包含 syslog 以及上、下一行内容过滤出来

6. 过滤某个关键词,并输出行号

7. 过滤不包含某关键词,并输出行号

8. 删除掉空行

9. 过滤包含 root 或 syslog 的行

10. 查看当前目录中包含某关键词的所有文件(这个很有用)

参数:
	-n : 过滤文本时,将过滤出来的内容在文件内的行号显示出来
	-A : 匹配成功之后,将匹配行的后n行显示出来
	-B : 匹配成功之后,将匹配行的前n行显示出来
	-C : 匹配成功之后,将匹配行的前后各n行显示出来
	-c :  只显示匹配成功的行数
	-o :  只显示匹配成功的内容
	-v :  反向过滤
	-q :  安静模式,不输出任何信息,脚本中常用
	-i : 忽略大小写
	-l :  匹配成功之后,将文本的名称打印出来
	-R|-r : 递归匹配 
	--color:以颜色突出显示匹配到的字符串
	-E : 使用拓展正则   等价于  egrep
知识储备:
	$ : 上一行命令执行的结果,0代表执行成功,其他数字代表执行失败。
	wc :  匹配行数
		-l : 打印匹配行数
		-c : 打印匹配的字节数
	
在/etc目录下,有多少个文件包含root。
	grep -rl 'root' /etc/ | wc -l
  • 与 grep 相似的工具还有 egrepfgrep,实用性并不强,其功能完全可以通过 grep 的扩展参数来实现,所以就不再扩展。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154009.html

(0)

相关推荐

  • abca式的成语,abac式的形容词语大全

    技术abca式的成语,abac式的形容词语大全碍手碍脚abca式的成语、毕恭毕敬、呆头呆脑、多才多艺、独来独往无尤无怨、无缘无故、无怨无德、无昼无夜、无踪无影 武爵武任、勿怠勿忘、误打误撞、先圣先师、先知先觉 闲非闲是、

    生活 2021年10月21日
  • Java8新特性-日期时间

    技术Java8新特性-日期时间 Java8新特性-日期时间1.背景Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理。在旧版的 Java 中,日期时间

    礼包 2021年10月27日
  • hadoop命令有哪些

    技术hadoop命令有哪些这篇文章主要为大家展示了“hadoop命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“hadoop命令有哪些”这篇文章吧。查看:hadoop

    攻略 2021年11月20日
  • 十大经典排序算法

    技术十大经典排序算法 十大经典排序算法本文转载自https://www.cnblogs.com/onepixel/articles/7674659.html
    0、算法概述
    0.1 算法分类
    十种常见排序

    礼包 2021年12月14日
  • 如何解析sqlmap注入参数

    技术如何解析sqlmap注入参数这篇文章将为大家详细讲解有关如何解析sqlmap注入参数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、指定数据库类型 --dbmsht

    攻略 2021年12月9日
  • 怎么解决oracle12.2 adg中的ORA-46952问题

    技术怎么解决oracle12.2 adg中的ORA-46952问题这篇文章主要讲解了“怎么解决oracle12.2 adg中的ORA-46952问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢

    攻略 2021年11月5日