shell的正则表达式

2024-06-24 02:52
文章标签 shell 正则表达式

本文主要是介绍shell的正则表达式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、正则表达式:匹配的是文本内容(文本三剑客:grep:过滤文本内容       sed:针对文本内容进行增删改查        awk:按行取列)

二、grep:过滤

1.grep:过滤文本内容,作用就是使用正则表达式来匹配文本内容。

   grep命令格式:grep -m 1 “bash”  /etc/passwd

                            cat  /etc/passwd   |    grep  -m  1 “bash”

  grep -m +数字+内容:只取包含内容的那几行

grep -v +内容:(取反)除了此内容所在行不显示,其它都显示

grep -n +内容:显示匹配内容行及其行号

grep -c +内容:只统计匹配内容的总行数

 grep -o +内容:只显示匹配内容的结果

grep -q +内容:静默模式,不输出任何信息 

grep  -A  数字+内容:匹配文件内所属内容及内容的下几行

grep -B 数字+内容:匹配文件内容及内容的上几行

grep -C  数字 +内容 :匹配文件内容及内容的上下几行

grep -e 内容 -e  内容:逻辑或,实现多个内容查找

grep  -E或egrep :都是正则表达式,省略表示次数命令繁琐的斜杠

grep  -f  脚本1  脚本2:匹配两个不同脚本内相同的内容

grep  -r:递归目录下的文件内容,不包含软连接 

grep -R:递归目录下,所有包含过滤内容的文件以及匹配的内容行,包括软连接

2.sort:以行为单位对文件内容进行排序

             格式:sort   -选项   文本

sort  -f :忽略大小写,默认会把大写字母排在前面

sort  -b:忽略每行的空格进行排序(有空格不影响排序)

sort  -n : 按照数字优先排序(类似-b)

sort -r :反向排序

sort -u:去重,不连续相同的数据只显示一行

sort  -n  文件1  -o  文件2 :把排序后的结果输出到指定文件

 3.uniq:去除连续重复的行只显示一行

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

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

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

 4.tr:用来对标准输出的字符进行替换、压缩、删除

 tr -c:保留字符集1的字符,其它的字符用字符集2来进行替换,并且会默认多打印一个字符

tr -d:删除字符

tr -s:把连续重复出现的字符串压缩为一个字符,也可以替换字符集

 5.cut:对字段进行截取和剪裁

cut -d:指定分隔符

cut -f:对字段进行截取

cut -b :以字节为单位截取(不常用)

cut -c:以字符为单位截取(不常用) 

head -n1 /etc/passwd:只显示文本的第一行

cut  --complement :排除所指定的字段再输出

cut --output -delimiter:更改原内容的分隔符

6.split:对文件进行分割,把文件拆分成若干个小文件

split  -l:指定行数进行拆分

split  -b:指定文件大小进行拆分

 面试题:如果现在有一个日志文件,有5G大小,能不能快速的进行打开

 回复:这种文件推荐使用split按大小进行拆分

7.paste、cat对文件进行合并

paste与cat区别:paste以左右合并,cat以上下合并。

8.统计当前主机的连接状态:有多少个LISTEN 有多少个 ESTAB

ss -antp:查看当前主机的连接状态

grep  -v  "^State" :过滤掉State行

cut  -d  " " -f  1 :以空格为分隔符截取文件的第一列

sort :对文件进行排序

uniq  -c :合并重复出现的行,并且统计重复出现行的次数

三、1.正则表达的作用:由一类特殊字符以及文本字符所编写的一个模式,模式又来匹配文件当中的内容(字符)。主要匹配的是文件内容及命令结果。

2.通配符(*  ?  [ ]):只能用于匹配文件名和目录名,不能匹配文件内容和命令结果。

       * :匹配任意一个或多个字符

       ?:匹配任意一个字符

      [  ]:匹配指定范围内任意一个单个字符

3.基本正则表达式:

3.1元字符(字符匹配) 

“.”(点) :任意单个字符

" \. ":转义符(恢复其本意,点就是点不代表任意字符)

[  ] :匹配指定范围内的任意单个字符

[^  ]:匹配指定范围外的任意单个字符

3.2表示次数:匹配字符出现的次数

* :匹配前面的字符任意次,包括0次,尽可能长的匹配

.*  :匹配前面的字符至少要有一次

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

\+ :匹配前面的字符至少要出现一次

这篇关于shell的正则表达式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088980

相关文章

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Linux实现简易版Shell的代码详解

《Linux实现简易版Shell的代码详解》本篇文章,我们将一起踏上一段有趣的旅程,仿照CentOS–Bash的工作流程,实现一个功能虽然简单,但足以让你深刻理解Shell工作原理的迷你Sh... 目录一、程序流程分析二、代码实现1. 打印命令行提示符2. 获取用户输入的命令行3. 命令行解析4. 执行命令

正则表达式r前缀使用指南及如何避免常见错误

《正则表达式r前缀使用指南及如何避免常见错误》正则表达式是处理字符串的强大工具,但它常常伴随着转义字符的复杂性,本文将简洁地讲解r的作用、基本原理,以及如何在实际代码中避免常见错误,感兴趣的朋友一... 目录1. 字符串的双重翻译困境2. 为什么需要 r?3. 常见错误和正确用法4. Unicode 转换的

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思