Как выполнить сопоставление регулярных выражений для файла и вывести результат.

Например, найдите 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 ответ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+' .

Результатом первого будет просто номер вашей версии, который может быть установлен после переменной.

Как редактирование вашего комментария: это работает правильно для меня. Я создал файл с вашими данными ввода, с помощью этого команда:

Используя это, чтобы установить переменную как таковую, тогда эхо работает также:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .