首页 > 系统相关 >shell中的文本处理命令和正则表达式

shell中的文本处理命令和正则表达式

时间:2022-11-01 16:35:23浏览次数:40  
标签:选项 字符 shell 匹配 正则表达式 文本处理 命令 表达式

一、文本处理命令

1.1、sort命令

 使用格式:

sort  [选项]  参数

常见选项:

选项 作用
-f 忽略大小写,将小写字母转换成大写字母来比较
-b 忽略每行前面的空格
-n 按照数字排序
-r 反向排序
-u 等同于uniq表示相同的数据仅显示一行
-t 指定字段分隔符
-k 指定排序字段

1.2、uniq命令

使用格式:

uniq [选项]  参数

常见选项:

选项 作用
-c 在数据行前出现的次数

-d

只打印出现的行,重复的行只显示一次
-D 只打印出现的行,重复几次就显示几次
-u 仅显示出现过一次的行

1.3、tr命令

命令格式:

tr [选项]  参数

常用选项:

选项 作用
-d 删除
-s 压缩

 

1.4、cut命令

命令格式

cut  [选项]  参数

常见选项

选项 说明
-d 指明分隔符
-f 选取指定字段

 

二、正则表达式

2.1、正则表达式的含义

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。许多程序设计语言都支持利用正则表达式进行字符串操作。

2.2、基础正则表达式

(支持的工具:grep、egrep、sed、awk)

字符 作用
\ 转义字符,可以把一些特殊的符号转换成普通的符号字符,还可以把一些普通字符转换成特殊功能,例:\!、\n、\$等
^ 表示匹配字符串开始的位置,匹配行首,例: ^a、 ^#
$ 表示匹配字符串末尾的位置,匹配行尾,例: word$、 #$ ;^$表示空行
. 匹配除\n之外的任意的一个字符,例: go.d、g..d
* 匹配前面子表达式0次或者多次,例: goo*d、go.*d
.* 表示任意长度的任一字符
[my] 表示匹配[ ]中包含的任一字符
[^my] 表示匹配除[ ]中包含的任一字符
\{n\} 匹配前面的子表达式n次,例:mo\{2\}y、'[0-9]\{ 2\ }'匹配两位及两位以上数字
\{n,\} 匹配前面的子表达式不少于n次,例: mo\{2,\}y、'[0-9]\{2,\}'匹配两位及两位以上数字
\{n,m\} 匹配前面的子表达式n到m次(m>=n),例: mo\{2,3\}y、'[0-9]\{2,3\}'匹配两位到三位数字

 

2.3、扩展正则表达式

(支持的工具: egrep、awk、grep -E、sed -r)

字符作用
+ 表示匹配前面的子表达式1次以上
? 表示匹配前面的子表达式0或者1次

( )

将括号里的内容看成一个整体
| 以或的方式匹配字符串

标签:选项,字符,shell,匹配,正则表达式,文本处理,命令,表达式
From: https://www.cnblogs.com/zhao222/p/16848169.html

相关文章

  • 使用shell进行简单分析增量更新时间的方法
    使用shell进行简单分析增量更新时间的方法思路产品里面更新增量时耗时较久,想着能够简单分析下哪些补丁更新时间久哪些相同前缀的补丁更新的时间累积较久.本来想通......
  • shell免交互与交互
    一,HereDocument免交互1.概述使用I/O重定向的方式将命令列表提供给交互式程序或命令,如cat,read或ftp命令;是标准输入的一种替代品,可以帮助脚本开发人员不必使用临时文件来......
  • PowerShell 获取虎扑步行街热榜json数据
    代码(curl"https://bbs.hupu.com/all-gambia").ParsedHtml.getElementsByClassName('t-info')|%{$texts=$_.getElementsByTagName('span')@{url=......
  • crontab执行shell脚本
     #!/bin/bashsource/etc/profile#需要导入环境变量,否则非原生命令执行不成功Sendmail(){smtp='mail.yx.com'account='[email protected]'password='123'to='[email protected]'subject=$......
  • (转)js正则表达式验证大全
    js正则表达式验证大全(转)/判断输入内容是否为空    functionIsNull(){       varstr=document.getElementById('str').value.trim();       if(s......
  • shell数组
    一,数组方法一数组名=(value0value1value2…)array1=(1020304050)方法二数组名=([0]=value[1]=value[2]=value…)array2=([0]=10[1]=20[2]=30[3]=40[......
  • Jsch远程执行shell脚本命令
    分享知识传递快乐JSch是JavaSecureChannel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成......
  • Shell实现FTP上传文件,并保存执行日志
    分享知识 传递快乐 这篇文章是 ​​Linux实现FTP上传下载​​ 的续篇文章,关于FTP具体语法使用,请参考《​​Linux实现FTP上传下载​​》。FTP上传文件并保存执行日志#!/......
  • Shell函数(函数定义、函数变量、函数调用、函数传参、函数返回值、获取函数返回值)
    分享知识传递快乐 1、函数定义linuxshell可以用户定义函数,然后在shell脚本中可以随便调用。Shell函数定义的语法格式如下:[function]funname[()]{函数体[retu......
  • Shell实现FTP下载文件,并保存执行日志
    分享知识 传递快乐 这篇文章是 ​​Linux实现FTP上传下载​​ 的续篇文章,关于FTP具体语法使用,请参考《​​Linux实现FTP上传下载​​》。FTP下载文件并保存执行日志#!/......