我正在尝试解析包含“ID”和数字条目的文件中的一行。但是,下面的脚本正在做的是抓取“ID”数值以及它之后的所有内容。我怎样才能将其简化为“ID”+数值而不是其他?
提前致谢。
tail -n 1 events.log | sed 's/.*id=\([^)]\+\).*/\1/' > event_id.dat
答案 0 :(得分:0)
括号中的正则表达式字符串为[^)]\+
,表示“除括号之外的所有字符”。
如果您要捕获数字,则需要将其更改为[0-9]\+
答案 1 :(得分:0)
如果没有输入和预期输出的示例,很难说出你在寻找什么,但这可能最常用:
sed -e 's/.*id=\([0-9]*\).*/\1/'
相当于:
[0-9]*
),以及之前或之后的任何数量\1
引用匹配表达式中括号内的部分)这样做你想要的吗?如果没有,您是否可以更明确地了解输入/输出要求?