linux系统sed命令中正则表达式应该怎样写?正确的表达式为什么匹配不上?

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:28:30
我想sed出test然后在后面加上pass,可是正则表达式怎么都匹配不上,我用本地测试正则表达式的一个小程序就验证通过了,难道是我的分号加的不对?
1.txt
02david test2
03david test3
04david test4
05david test5

sed 's/\w{4}\d/& pass/g' 1.txt --这样不行

sed 's/\\w{4}\\d/& pass/g' 1.txt --这样转义也不行

不知道该咋办了,跪求高手指点一下迷津!谢谢
用[:alnum:]之类的怎么表示呢?能否给举个例子?或者以我的题目为例应该怎么写呢?谢谢
谢谢 overawe
UE里面可以用正则表达式匹配查询,但是好像用你的方法还是不行
$虽然可以,但是如果我不加在行尾而是加在david后面不就不行了么?
今天又遇到类似问题了,愁死了。

郁闷啊我用多个[0-9]或[a-z,A-Z]就可以匹配,如[a-z,A-Z][a-z,A-Z][a-z,A-Z][a-z,A-Z][0-9],为什么不能简写呢?如[a-z,A-Z]\{4\}[0-9]?

用\w和\d好像不行, 用[:alnum:]之类的表示没问题

这样可以吗?
sed 's/test./& pass/' 1.txt

要是按照我的意思
sed 's/$/ pass/' 1.txt
就行了

完全按照你那个命令走的话是
sed 's/[[:alpha:]]\{4\}[[:digit:]]/& psss/g' log