- 论坛徽章:
- 0
|
本帖最后由 whynlight 于 2016-12-10 10:13 编辑
文本如下:
cat aa
23244 ++-**ereq3rdfdsa
eqojio2///jklajd>>..
\\\r=+jaskl...
期望输出:
ereq
这是我搞出来的命令,各位大神帮我看下哪里有问题:
cat prac2.sed
/[a-zA-Z]+/{
s/.*([a-zA-Z]+)[^a-zA-Z]+.*/\1/
q
}
然而输出是这样的:
[root@localhost test]# sed -rf prac2.sed aa
q
于是我感觉应该加个零宽断言:
cat prac2.sed
/[a-zA-Z]+/{
s/.*([a-zA-Z]+(?=[^a-zA-Z]+)).*/\1/
q
}
然而报错:
[root@localhost test]# sed -f prac2.sed aa
sed: file prac2.sed line 3: invalid reference \1 on `s' command's RHS
好吧也许是-r的问题,加了个选项然并卵:
[root@localhost test]# sed -rf prac2.sed aa
sed: file prac2.sed line 3: Invalid preceding regular expression
被搞得有点懵,就来向各位大侠求救,感激不尽!!!!!!
|
|