如何通过grep和正则表达式提取应用版本并输出到控制台?
提取Xcode版本号的实用方法
你之前的
grep命令只能输出整行,要单独揪出版本号,得用grep的两个关键选项:-o(只输出匹配的片段)和-P(启用Perl兼容正则,支持更灵活的匹配规则)。你的正则有个小问题:
.在正则里是匹配任意字符的,要匹配实际的小数点得写成\.,另外可以把正则改成兼容多段版本号(比如14.2.1这种),最终正则用[0-9]+(\.[0-9]+)+。直接能用的命令:
defaults read /Applications/Xcode.app/Contents/Info.plist | grep -oP 'CFBundleShortVersionString = "\K[0-9]+(\.[0-9]+)+'这里的
\K是Perl正则的语法,作用是忽略它前面匹配到的所有内容,只保留后面的版本号部分,不用折腾分组捕获,简单直接。额外推荐一个更靠谱的方案:
Mac自带的PlistBuddy工具可以直接读取Plist文件里的指定键值,完全不用正则,准确率更高:/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" /Applications/Xcode.app/Contents/Info.plist
内容的提问来源于stack exchange,提问作者Duncan C
相关产品推荐
相关产品推荐

