如何对文件执行正则表达式匹配并输出结果。
例如,查找version="X.Y.Z"
并将 XYZ 的匹配结果存储在变量中,以便稍后能够回显该匹配。
这是我自己所能得到的: sed -n -e 's/version\=\".*\"' $PATH"version.js"
我的文件内容是:
var config;
function check() {
if (window.environment && window.revision) {
config.version = "0.0.1";
config.isApp = true;
}
else {
setTimeout(check);
}
}
check();
并且我希望将其存储0.0.1
在一个变量中,因为我希望将这个值插入到另一个文件中。
答案1
这应该适用于你的情况:
cat /path/to/version.js | grep config.version | grep -P -o '\d\.\d\.\d'
如果您的数字是两位数(或更多),那么您需要在对应于该数字的 \d 中添加 + 。
因为'\d\.\d\.\d'
匹配1.1.1, 1.1.2, 2.2.9
等,所以它不匹配1.10.2
,然后正则表达式需要修改为'\d\.\d+\.\d'
。
您可以选择“简单/安全”路线,只需放置'\d+\.\d+\.\d+'
。
第一个输出只是您的版本号,之后可以将其设置为变量。
对您的评论进行编辑: 这对我来说是正确的。我使用您给出的输入创建了一个文件,使用我的命令 grep 该文件可得到以下内容:
使用它来设置这样的变量,然后回显也可以工作: