在Unix环境下用grep从curl输出提取publication_id值并存储
提取publication_id并存储到变量的Unix命令方案
直接用下面的命令即可实现需求,将提取到的publication_id内容存储到val变量中:
val=$(curl https://www.geeksforgeeks.org | tr '\n' ' ' | tr -s '[[:space:]]' | grep -oE 'publication_id:\[[^]]+\]')
命令各部分作用:
tr '\n' ' ':把curl返回内容里的换行符换成空格,将所有内容合并成一行,方便后续正则匹配tr -s '[[:space:]]':压缩连续的空白字符为单个空格,避免多余空格干扰匹配逻辑grep -oE 'publication_id:\[[^]]+\]':-o:仅输出正则匹配到的内容片段,而非包含匹配项的整行-E:启用扩展正则表达式语法- 正则表达式
publication_id:\[[^]]+\]:精准匹配以publication_id:开头、到右中括号]结束的完整内容,确保只提取目标片段
比如输入内容为client_id:"15647",publication_id:["151","152","153"]时,执行命令后val变量的值就是publication_id:["151","152","153"],完全符合预期。
内容的提问来源于stack exchange,提问作者shikha. agarwal
相关产品推荐
相关产品推荐

