当前位置: 首页 > news >正文

1、正则表达式

grep匹配

grep用来过滤文本内容,以匹配要查询的结果。

grep   root    /etc/passwd:匹配包含root的行

  • -m    数字:匹配几次后停止

  • -v:取反
  • -i:忽略字符的大小写,默认的,可以不加
  • -n:显示匹配的行号

  • -c:统计匹配的行数

  • -o:仅匹配的字符串

  • -q:静默模式
  • -A     数字:after,包含匹配到的行,以及后几行

  • -B   数字:包含匹配到的行,以及前几行

  • -C   数字:包含匹配到的行,以及前后各几行

  • -w:匹配完整的单词的行

  • -E:使用扩展正则表达式,egrep=grep   -E
  • -f:匹配两个文件中的相同内容,以第一个文件的内容为准(参照)

  • -r:递归目录,查找文件内容,软连接内容不包含。

  • -R:递归目录,查找文件内容,软连接内容包含。

sort排序

按行对文件的内容进行排序,也可以根据不同的数据类型进行排序

可见数字在前,字母在后。

  • -f:忽略大小写,可以不加
  • -b:忽略每行前面的空格

  • -n:按照数字进行排序

  • -u:去重,相同的内容仅显示一行
  • -o:输出的文件名,把sort排序后的结果输出到指定的文件

案例1:按原文排序输出到指定文件里

cat   -n 可以添加行数,sort   -no 表示按数字排序输出到指定文件中,正好可以按原文输出。

uniq去重

用于统计或者忽略文件中连续出现的重复行,一般和sort结合使用

uniq   选线   文件名   =   cat   文件名   |   uniq   选项

  • -c:统计连续重复的行的次数,并且合并重复的行

  • -u:显示仅出现一次的行(包括不连续的重复的行)

  • -d:仅显示重复出现的行(必须时连续的重复的行)

tr替换、压缩和删除

用来对标准输入的字符串进行替换、压缩和删除

tr   选项   参数

echo   “字符串”   |   tr   选项

  • -c:保留字符集1的字符,其他字符替换字符集2

  • -d:删除属于字符集1的字符

  • -s:将重复出现的字符串压缩成一个,用字符集2 替换 字符集1。

  • -t:默认带t,替换字符集,一般不加

cut 截取

cut是对字段进行截取和裁剪

cut   选项   参数

cat   文件名   |   cut   选项

  • -d:指定分隔符(默认分隔符是tab)
  • -f:指定要截取的字段
  • -b:以字符的单位进行截取
  • -c:以字符的单位进行截取
  • -complement:排除指定的字段
  • -output-delimiter:更改输出内容的分隔符

以:为分隔符,截取 /etc/passwd 的第1-3段字符。

文件合并

cat  1   2   >   3               —上下合并

paste  1   2   >   3           —左右合并

split文件拆分

有一个文件,太大,直接打开速度很慢,有什么办法提高素的?

  • -l:按行分割

  • -b:按大小分割

正则表达式

正则表达式区别通配符,正则表达式匹配文本的内容,命令的输出结果也属于文本内容,也可以使用正则表达式。

使用正则表达式,匹配内容最好用引号(单双都行)引起来,避免发生歧义。

通配符用来匹配文件名和目录名。

通配符

匹配文件名或者目录名

*:任意一个或多个字符

?:任意单个字符

[a-z]、[0-9]:匹配任意单个字符

基本正则

元字符

  • . :任意单个字符
  • \:表示转义符

  • [a-b]、[A-Z]、[0-9]:匹配文件内容的任意单个字符
  • [[:blank:]]:匹配空白字符,空格

  • ():表示分组
  • [^]:取反

次数表示

  • *:任意字符,表示匹配前面的任意字符,0次也算,尽可能多的匹配

  • . *:任意长度的字符,最少有1次,也就是匹配所有。

  • \?:匹配前面的字符0次或者1次,可有可无

  • \+:匹配前面的字符,最少出现1次,有且>=1

  • \{n\}:匹配前面的字符等于多少次

  • \{m,n\}:匹配前面的字符最少m次,最多n次

  • \{,n\}:匹配前面的字符最多n次,只要比n小,都算

  • \{m,\}:匹配前面的字符最少m次,只要比m大,都算

案例1:匹配ens33出现的IP地址

命令:ifconfig ens33 | grep -w "inet" | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"

位置锚定

  • ^:以什么开始
  • $:以什么结尾
  • ^$:空行

^root$:表示匹配以root为开头和结尾的,即这一行只有root一个单词 

词首锚定

  • \b

词尾锚定

  • \b

分组和逻辑条件

分组:()

或:\|

扩展正则

扩展正则表达式

grep  -E  =  egrep

*:任意字符,表示匹配前面的任意字符,0次也算,尽可能多的匹配

. *:任意长度的字符,最少有1次,也就是匹配所有

?:匹配前面的字符0次或者1次,可有可无

+:匹配前面的字符,最少出现1次,有且>=1

{n}:匹配前面的字符等于多少次

{m,n}:匹配前面的字符最少m次,最多n次

{,n}:匹配前面的字符最多n次,只要比n小,都算

{m,}:匹配前面的字符最少m次,只要比m大,都算

补充案例

案例1:显示/etc/passwd中以sh结尾的行

案例2:查找/etc/inittab中含有“以s开头,并以d结尾的单词模式的行

案例3:查找ifconfig命令结果中的1-255之间的整数

案例4:在/etc/passwd中取出默认shell为bash的行

案例5:高亮显示passwd文件中冒号,及其两侧的字符

cat /etc/passwd | grep -E ".?:.?"

案例6:统计当前主机状态,使用netstat或者ss

方法1:netstat -antp | grep -v "State" | grep -v "Internet" | tr -s " " | cut -d " " -f 6 | sort | uniq -c

方法2:ss -antp | grep -v "State" | cut -d " " -f 1 | sort | uniq -c

案例7:统计nginx的访问日志当中多次出现的ip地址

cat /var/log/nginx/access.log | cut -d " " -f 1 | sort | uniq -c

http://www.lryc.cn/news/492569.html

相关文章:

  • Airsim安装问题:This project was made with a different version of the Unreal Engine.
  • java八股-分布式服务的接口幂等性如何设计?
  • vscode python code runner执行乱码
  • Java中的继承详解
  • kafka进阶_2.存储消息
  • 如何启用本机GPU硬件加速猿大师播放器网页同时播放多路RTSP H.265 1080P高清摄像头RTSP视频流?
  • 如何更好地设计SaaS系统架构
  • 表征对齐在训练DiT模型中的重要性
  • Qt中CMakeLists.txt解释大全
  • 【在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: ‘module‘ object is not callable】
  • 数据结构-堆的实现和应用
  • 数据分析的尽头是web APP?
  • YOLO系列论文综述(从YOLOv1到YOLOv11)【第3篇:YOLOv1——YOLO的开山之作】
  • 容器和它的隔离机制
  • 【数据结构与算法】排序算法总结:冒泡 / 快排 / 直接插入 / 希尔 / 简单选择 / 堆排序 / 归并排序
  • Windows Serv 2019 虚拟机 安装Oracle19c,图文详情(超详细)
  • 数字孪生开发之 Three.js 插件资源库(2)
  • 小米C++ 面试题及参考答案下(120道面试题覆盖各种类型八股文)
  • OpenOCD之J-Link下载
  • 华为云云连接+squid进行正向代理上网冲浪
  • 情绪识别项目
  • 【RISC-V CPU debug 专栏 2.2 -- Hart DM States】
  • 从零样本到少样本学习:一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用!
  • 【LC】3101. 交替子数组计数
  • 如何构建SAAS项目
  • 树莓派搭建NextCloud:给数据一个安全的家
  • 深入解读 MongoDB 查询耗时:Execution 和 Fetching 阶段详解
  • frida_hook_dlopen(当年到lib目录下找发现一个so都没有,hook下dlopen)
  • Zero to JupyterHub with Kubernetes中篇 - Kubernetes 常规使用记录
  • WordCloud去掉停用词(fit_words+generate)的2种用法