shell——正则表达式

常见的命令及其格式

1.sort命令

sort [选项]  参数

2.uniq命令

uniq [选项]  参数
cat file | uniq 选项

3.tr命令

tr [选项]  参数

4.cut命令

cut [选项]  参数
cat file | cut 选项

sort命令常用选项

参数作用
n按照数字进行排序
r反向排序
u等同于uniq,表示相同的数据仅显示一行
t指定字段的分隔符,默认使用[tab]键分隔
k指定排序字段
o<输出文件>将排序后的结果转存至指定文件
f忽略大小写
b忽略每行前面的空格

uniq 命令 常用选项

uniq 命令————用于报告或忽略文件中重复行

参数作用
c进行计数,并删除文件中重复出现的行
d仅显示重复行
u仅出现一次的行

tr命令常用选项

tr 命令————对来自标准输入的字符进行替换压缩和删除

参数作用
c保留字符集1的字符,其他字符(包括换行符\n)用字符集2表示
d删除所有属于字符集1的字符
s将重复出现的字符串压缩为一个字符串,用字符集2替换字符集1
t字符集2替换字符集1,不加选项同结果

cut命令常用选项

参数作用
f通过指定哪一个字段进行提取。cut命令使用"TAB"作为默认的字段分隔符
d''TAB"是默认的分隔符,使用此选项可以更改为其他的分隔符
–complement此选项用于排除所指定的字段
–output-delimiter更改输出内容的分隔符

正则表达式(支持工具:find grep egrep sed awk)

    正则表达式匹配精度比通配符更高
               正则表达式的定义
 正则表达式,又称正规表达式、常规表达式
 使用字符串来描述、匹配一系列符合某个规则的字符串
 正则表达式组成
 普通字符包括大小写字母、数字、标点符号及一些其他符号
 元字符是指在正则表达式中具有特殊意义的专用字符
匹配符含义
.表示任意一个字符
[]匹配括号中的一个字符
[^ ]表示否定括号中出现字符类中的字符,取反
\转义字符用于取消特殊符号的含义
^匹配字符串开始的位置
$匹配字符串结束的位置
{n}匹配前面的子表达式n次
{n,}匹配前面的子表达式不少于n次
{n,m}匹配前面的子表达式n到m次
[:alnum:]匹配任意字母和数字
[:alpha:]匹配任意字母,大写或小写
[:lower:]小写字符a-z
[:upper:]大写字符A-Z
[:blank:]空格和TAB字符
[:space:]所有空白字符( 新行、空格、制表符)
[:digit:]数字 0-9
[:xdigit:]16 进制数字
[:cntrl:]控制字符
提示:通过\可以将特殊字符转换成普通字符;
也可以将普通字符转换成特殊字符\n \t \r 等

扩展正则表达式(支持的工具:egrep awk grep-E sed-r)

限定符说明
*匹配前面子表达式0次或者多次
.*任意长度的任意字符
匹配前面子表达式0次或者1次,即:可有可无
+与星号相似,表示其前面字符出现一次或多次,但必须出现一次,>=1
{n,m}匹配前面的子表达式n到m次
{m}匹配前面的子表达式n次
{n,}匹配前面的子表达式不少于n次 >=n
{,n}
|用逻辑OR(或)方式指定正则表达式要是用的模式
()字符串分组,将括号中的字符串作为一个整体。

位置锚定

位置限定符说明
^行首锚定,用于模式的最左侧
$行尾锚定,用于模式的最右侧
PATTERN用于模式匹配整行
^$空行
^[[:space:]]*$空白行
< 或 \b词首锚定,用于单词模式的左侧(连续的数字,字母下划线都算)
>或 \b词尾锚定,用于单词的右侧
<PATTERN>匹配整个单词

各命令基础应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

补充:echo ${i%,*} 字符串从右到左,最短匹配最短匹配逗号部分删除

Shell编程中的正则表达式是一种用于匹配和操作字符串的强大工具。它使用特定的语法规则来描述和匹配符合某个模式的字符串。在Shell编程中,常用的工具如grep、sed和awk都支持使用正则表达式进行模式匹配和文本处理。正则表达式由普通字符和特殊字符(元字符)组成。普通字符指的是任意字母、数字或其他字符,而元字符具有特殊的意义和功能,用于表示模式中的特定字符或符号。通过使用正则表达式,可以实现字符串的匹配、替换、提取等操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Shell编程之正则表达式](https://blog.csdn.net/weixin_51099370/article/details/124568808)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Linux操作系统——Shell编程 正则表达式](https://blog.csdn.net/weixin_46411355/article/details/125628828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值