Member 12767270 Ответов: 0

У меня возникли проблемы с тем, чтобы bash соответствовал моему регулярному выражению


Я изучаю сценарии bash и пытаюсь понять, как regex работает с bash. В моей простой программе у меня есть файл с различными строками, но я хочу сопоставить простую пару int с форматом двух чисел, разделенных запятой и пробелом, как это: 123, 123. Я также хочу сопоставить строку с группами, чтобы легко извлечь первое и последнее числа из строки. Но когда я передаю образец файла в свою программу, он не соответствует ни одной из строк, которые я ожидаю.

Что я уже пробовал:

#!/bin/bash

re="([0-9]+)(, )([0=9]+)"

echo $1
file1=$1

while IFS= read -r line; do
        echo "The line is: $line"
        if [[ $line =~ $re ]]; then
               echo ${BASH_REMATCH[0]};
               echo ${BASH_REMATCH[1]};
               echo ${BASH_REMATCH[2]};
        fi
done

0 Ответов