shell正则表达式

正则表达式

正则表达式匹配的是文本内容,linux的文本三剑客都是针对文本内容

grep

grep 过滤文本内容

sed 针对文本内容进行增删改查

awk 按行取列

文本三剑客都是按照行进行匹配

grep的作用:使用正则表达式来匹配文本内容

选项:

grep -m 匹配几次之后停止

grep -v 取反

grep -n 显示匹配的行号

grep -c 只统计匹配的行数

grep -o 仅显示匹配的结果

grep -q 静默模式,不输出任何信息

grep -A 数字 后几行

grep -B 数字 前几行

grep -C 数字 前后各几行

grep -e 逻辑或

grep -E 匹配扩展正则表达式

grep -f 匹配两个文件相同内容,以第一个文件为准

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

grep -R 递归目录 目录下的文件内容。软连接包含在内

sort和uniq

排序:

sort:以行为单位,对文件的内容进行排序

sort 选项 参数

cat file | sort 选项

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

sort -b 忽略每行之前的空格(不是把空格删除,只是依然按照数字和字母的顺序排序)

sort -n 按照数字进行排序

sort -r 反向排序

sort -u 相同的数据仅显示一行

sort -o 把排序后的结果转存到指定的文件

uniq 去除连续重复的行,只显示一行

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

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

uniq -d 仅显示连续重复的行(不包括非连续出现的内容)

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

tr 选项 参数

tr -c 保留字符集1的字符,其他的字符用字符集2来进行替换

tr -d 删除字符集中的一部分

tr -s 把字符集1的部分替换成字符集2的部分,连续重复出现的字符压缩成一个字符

cut

cut 快速裁剪 awk都可以按行取列

对字段进行截取和裁剪

cut -d 指定分隔符(默认的分隔符是tab键)

cut -f 对字段进行截取,指定输出段的内容

cut --complement 输出的时候排除指定的字段

cut --output -ddeliniter 更改输出内柔的分隔符

cut -b 以字节为单位进行截取

cut -c 以字符为单位进行截取

文件的拆分

split 大文件拆分成若干个小的文件

split -l 按行来进行分割

split -b 按照大小来进行分割
现在有一个日志文件,很大,5G,第一个能不能快速的打开?
拆分: split -l 按行 split -b 大小

这种文件推荐使用按大小

文件合并

cat

paste

cat合并和paste合并之间的区别

cat是上下合并

paste是左右合并

统计当前主机的连接状态

ss -antp |grep -v ‘^State’ |cut -d " " -f 1 |sort|uniq -c

正则表达式:

正则表达式:由一类特殊字符以及文本字符所编写的一个模式,模式用来匹配文件当中内容(字符)。

检验我们输入的内容是否满足规定,格式,长度等等要求。

主要用来匹配文本内容,命令的结果

通配符:只能用于匹配文件名和目录名。不能匹配文件的内容和命令结果。

正则表达式:

基本正则表达式

元字符(字符匹配)

. 任意单个字符,也可以是任意一个汉字

\ 转义符 恢复其本意

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

[^] 取反

^$ 空行

^# 不在中括号内,就是以什么为开头

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

* 匹配前面的字符任意次,0次也可以。贪婪模式,尽可能的匹配

.* 匹配前面的任意字符,至少1次,匹配所有

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

\+ 匹配前面的字符,至少要出现一次
\{n\} 匹配前面的字符=n次,可以小于n,但是不能大于n,而且前面的字符必须要是连续出现
\{m,n\} 匹配前面的字符至少m次,至多有n次。必须是连续出现,超出的不在匹配范围

位置锚定:

^:以什么开头 行首锚定 ^[0-9]
$:以什么结尾 行尾锚定 [0-9]$
^root$:表示这一行只能有这个,多一个不能少一个不行
\<或者\b	词首锚定,匹配单词的左侧(连续的数字,字母下划线都算单词内部)
\>或者\b	词尾锚定,匹配单词的右侧

分组和逻辑关系

分组 :()

或者:	\|

扩展正则表达式

grep -E 不加斜杠,跟正则表达式一样

词尾词首/b是需要加上斜杠,其余没有区别

egrep=grep -E

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值