linux正则表达式

grep:文本过滤工具

sed:流程编辑,文本编辑工具

awk:Linux文本报告生成器

基础正则表达式集合

符号

例子

作用

^^abd匹配以abc单词开头的行
$abc$匹配以abc单词结尾的行
^$^$表示空行
..除空行外的任意一个字符
\\.转义字符,代表转义小数点
*a*匹配a字符连续出现0次及以上
.*.*任意内容
^.*^.*匹配任意开头内容
.*$.*$匹配任意结尾内容
[  ][abcd], [a-z1-9A-Z]匹配括号里一个字符内容,可用-代表范围
[^ ][^abcd]匹配除了abcd以外的字符

扩展正则表达式

grep -E才能生效

字符例子作用
++匹配前一个字符1次及以上
匹配前一个字符0次及1次
( )( )括号内被视为整体
{n, m}a{n, m}匹配a至少n次至多m次
{n, }a{n, }匹配a至少n次
{n}a{n}

匹配a字符n次

{ ,m}a{ , m}匹配a字符最多m次
|a|b匹配a或者b  (管道符)
[ ]+[abcd]+匹配abcd字符1次及以上

grep

语法

grep 参数 匹配条件 文件

grep -v "a*" test.txt

参数详情:

-n仅匹配显示行与行号
-v反转匹配
-i忽略大小写
-c只统计匹配的行数
-E使用egrep命令
-o只输出匹配的内容
-w

只匹配过滤的单词

sed

语法

sed 参数 内置命令 文件

sed -n "/xx/p" test.txt

sed -e "s/x/a/g" -e "s/w/q/gp" test.txt

可用|(管道符)将数据给sed匹配

cat test.txt | sed -n "2,3p"

参数详情

-n取消默认输出,与-p一起使用
-i将修改结果写入文件,若不使用此参数修改的为内存数据
-e多次编辑,不许要管道符
-r支持正则扩展

内置命令详情

a对文本追加,在指定行后追加一行或者多行文本
d删除匹配行
i在指定行前插入一行或者多行文本行
p打印匹配行的内容,通常与-n一起使用
s/正则/替换内容/gg代表全局匹配

匹配范围详情

全文匹配
单地址匹配指定的行
/xxx/被匹配到的xxx每一行
1,2与1,+51-2行与1-(1+5)行
1~2第1行开始,间隔2行匹配,1,3,5......行

awk

语法

awk 可选参数 '模式 {动作}' 文件/数据

参数详情

-F

指定分割字符段,默认为空格

-v定义或修改一个awk内部的变量
-f从脚本文件中读取awk命令

内置变量

FS输入字段分隔符,默认为空白字符
OFS输出字段分隔符,默认为空白字符
RS输入记录分隔符(输入换行符),指定输入时的换行符
ORS输出记录分隔符(输出换行符),输出时用指定符号代替换行符
NF当前行字段的个数
NR当前处理文本文件的行号
FNR个文件分别计数的行号
FILENAME当前文件名
ARGC命令行参数个数
ARGV数组,保存的是命令行所给定的各参数

模式详情

BEGIN在执行awk时提前预处理BEGIN命令
END在执行完命令后进行处理END后的命令
<小于
<=小于等于
==等于
!=不等于
>=大于等于
>大于
~匹配正则,~/正则/   awk '/正则表达式/{动作}' 文件
!~不匹配正则

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

name =

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值