Shell 正在分析字符串以获取所需数据
我试图解析文件中包含“ID”和数字项的行。但是,下面的脚本所做的是获取“ID”数字值及其后的所有内容。我怎么能把它简化为“ID”+数值,而不是别的 提前谢谢Shell 正在分析字符串以获取所需数据,shell,scripting,string-parsing,Shell,Scripting,String Parsing,我试图解析文件中包含“ID”和数字项的行。但是,下面的脚本所做的是获取“ID”数字值及其后的所有内容。我怎么能把它简化为“ID”+数值,而不是别的 提前谢谢 tail -n 1 events.log | sed 's/.*id=\([^)]\+\).*/\1/' > event_id.dat 括号中的正则表达式字符串是[^]\+,表示“除结束括号外的所有字符” 如果您希望捕获数字,则需要将其更改为[0-9]\+如果没有输入和预期输出的示例,很难说出您要查找的内容,但这可能最为普遍: se
tail -n 1 events.log | sed 's/.*id=\([^)]\+\).*/\1/' > event_id.dat
括号中的正则表达式字符串是
[^]\+
,表示“除结束括号外的所有字符”
如果您希望捕获数字,则需要将其更改为
[0-9]\+
如果没有输入和预期输出的示例,很难说出您要查找的内容,但这可能最为普遍:
sed -e 's/.*id=\([0-9]*\).*/\1/'
这相当于:
[0-9]*
)的行,以及前后任意数量的任何内容\1
引用匹配表达式中括号内的部分)这是你想要的吗?如果没有,您可以更明确地说明输入/输出要求吗?粘贴输入和输出的示例如果每个匹配项都包含“id=”则您实际上不需要用正则表达式捕获该部分,对吗?你能不能先抓住数字值,然后加上“id=”你自己?我想你明白了。我会试试看,然后回来汇报。谢谢大家的意见,伙计们。