使用unix中的sed提取与正则表达式匹配的字符串块

时间:2015-05-29 15:02:06

标签: regex unix sed

假设我有一堆URL,每个URL都包含一个唯一的标识符。它看起来像'abc1000002'。它具有相同的前导字符串'abc',只有数字不同。

标识符出现在URL中的各个位置

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命令以仅提取与正则表达式匹配的块?

1 个答案:

答案 0 :(得分:0)

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

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