匹配单词

sh/bash/dash/ksh/zsh等Shell脚本
回复
罗非鱼
帖子: 980
注册时间: 2008-04-12 12:44
送出感谢: 1 次
接收感谢: 2 次

匹配单词

#1

帖子 罗非鱼 » 2013-02-03 14:39

echo 'libqt4-core : Depends: libqt4-dbus (= 4:4.8.2+dfsg-10) but 4:4.8.2+dfsg-2 is to be installed' | sed 's/\b(\(.*\))\b/\1/'

得不到 = 4:4.8.2+dfsg-10,请问,如何得到?如何修改这个正则表达式?(请勿使用perl风格的正则表达式)
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 匹配单词

#2

帖子 eexpress » 2013-02-03 14:55

● echo 'libqt4-core : Depends: libqt4-dbus (= 4:4.8.2+dfsg-10) but 4:4.8.2+dfsg-2 is to be installed'|perl -ne '/\(= \K4.*?(?=\))/;print $&;'
4:4.8.2+dfsg-10
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 匹配单词

#3

帖子 eexpress » 2013-02-03 14:56

额。不使用perl风格?还是不使用perl?

那你一层一层管道切就是,使用()当分割符号。
● 鸣学
头像
yanyeyy
帖子: 26
注册时间: 2008-10-06 23:04
送出感谢: 2 次
接收感谢: 1 次

Re: 匹配单词

#4

帖子 yanyeyy » 2013-02-06 15:10

echo 'libqt4-core : Depends: libqt4-dbus (= 4:4.8.2+dfsg-10) but 4:4.8.2+dfsg-2 is to be installed' | sed -r "s/.+\(= (.*)\).*/\1/"
4:4.8.2+dfsg-10
回复

回到 “Shell脚本”