我有一个bash脚本,我正在尝试调整以某种方式输出grep的内容。这是我的脚本现在的样子:
files=/var/chef/cache/cookbooks/*
for f in $files
do
echo "${f##*/}" && sudo cat $f/metadata.json | grep \"version\"
done
现在的输出如下所示:
elasticsearch
"version": "0.3.10"
我只希望它输出的实际数字不带“版本”:在前面或引号中。上面的示例我想看起来像这样。
elasticsearch
0.3.10
我是正则表达式的新手,所以我不确定执行此操作的最佳方法是什么。将grep的输出传递给正则表达式搜索使用sed实用工具是否有用?任何帮助将非常感激。
echo "${f##*/}" && sudo cat $f/metadata.json | sed -n '/"version": "\([^"]*\)"/ s//\1/p'
直接在sed中过滤并重新格式化
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句