Linux的正则表达式

正则表达式(Regular Expression)

以行为单位来进行字符串的处理操作。主要分为:基础正则表达式和扩展正则表达式

基础正则表达式

语系对正则表达式的影响

LANG=C时,01234…ABCD … Zabcd…z
LANG=zh_CN时,01234…aAbBcCdD…zZ
下面都是以LANG=C来记忆。

基础正则表达式字符的集合

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

对于^而言,在[]内部为取反,在外部为行首,

sed工具

sed [-nefri] [操作]

参数:

-n:使用安静(silent)模式,一般的用法中,所有来自stdin的数据一般都会被列出到屏幕上,但如果加上-n之后,则只有经过sed特殊处理之后的那一行(或操作)才会被列出来。
-e:直接在命令行模式进行sed的操作编辑。同时进行两个操作的时候,需要使用-e
例:cat /etc/passwd | sed -e ‘4d’ -e ‘6c no six line’ >passwd.new
-i:直接修改读取文件的内容,而不是由屏幕输出

参数后面的操作说明:[n1,[n2]] function

n1,n2:不见得会存在,一般代表选择进行操作的行数
function包含以下几项:
d:删除
如:sed '/^$/d‘ 删除空白行
sed ‘2,5d’ 删除2~5行
sed ‘3,$d’ 删除3到最后一行
c:替换,c后面可以接字符,这些字符可以替换n1,n2直接的行。若只有一个数字则替换该行。
a:新增,a后面可以接字符,这些字符会在新的一行出现(目前的下一行)
如:nl /etc/passwd | sed '2a Drink tea or…
>drink beer? ’ 这表示在第三行添加Drink tea or…在第四行添加drink beer? 这里必须以反斜杠来进行新行的增加。
i:插入,i后面可以接字符,这些字符会在新的一行出现(目前的上一行)
p:打印,通常与sed -n一起使用,将经过sed处理的那一行打印出来。
查找并替换
sed ‘s/要被替换掉的字符/新的字符/g’
sed ‘s/#.*$//g’ 将以#开始的注释行都替换为空白行
直接修改文件内容(危险操作)
sed -i ‘s/\.$/\!/g’ regular.txt 将其中的每行结尾的任意字符替换为!

扩展正则表达式

可以使用grep -E或者egrep 来使用正则表达式
在这里插入图片描述在这里插入图片描述
特别需要注意:!在正则表达式不是特殊字符,反向选择是^,而不是!
选择不是a-z的字母,[^a-z],而不是[!a-z]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值