2015-05-29 67 views
-2

假设我有一堆URL,每个URL包含一个唯一标识符。它看起来像'abc1000002'。它具有相同的前导字符串'abc',只有数字的位数不同。在unix中使用sed提取匹配正则表达式的字符串块

在网址的不同位置出现的标识符,

http://www.examle.com?abc1000002 http://www.example.com?abc1000002=blahblah#3fdslfkj

我可以写一个正则表达式等,“ABC [0-9] [0-9] [0-9] [ 0-9] [0-9] [0-9] .. [0-9],但是如何编写sed命令来仅提取与正则表达式匹配的块?

回答

0

grep是这个工作更好的工具:

s='http://www.example.com/?abc1000002=blahblah#3fdslfkj' 
grep -Eo 'abc[0-9]+' <<< "$s" 
abc1000002