如何对文件执行正则表达式匹配

如何对文件执行正则表达式匹配

如何对文件执行正则表达式匹配并输出结果。

例如,查找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 该文件可得到以下内容:

在此处输入图片描述

使用它来设置这样的变量,然后回显也可以工作:

在此处输入图片描述

在此处输入图片描述

相关内容