Я пытаюсь найти лучший способ сопоставить дни недели в моем сценарии bash. Вот что у меня есть, что работает:Регулярное выражение BASH для соответствия дням недели
if [[ $LINE == *"Sun"* ]] || [[ $LINE == *"Mon"* ]] || [[ $LINE == *"Tue"* ]] || [[ $LINE == *"Wed"* ]] || [[ $LINE == *"Thu"* ]] || [[ $LINE == *"Fri"* ]] || [[ $LINE == *"Sat"* ]]; then
Все строки в файле Я разборе начать с пн по вс:
Mon cat dog bird
Tue bird cat dog
Но я знаю, что должен быть лучший способ. Я пробовал много вещей, вот несколько неудач:
DAYS_REGEX='*[S|M|T|W|F][u|o|e|h|r|a][n|e|d|u|i|t]*'
if [[ $LINE =~ $DAYS_REGEX ]] ; then
и
if [[ $LINE == *"Sun|Mon|Tue|Wed|Thu|Fri|Sat"* ]] ; then
Я чувствую, что там должно быть регулярное выражение, которое было бы что-то вроде этого, но я не могу прикрепить его вниз:
(SMTWF/uoehra/neduit)
Что я имею дела, но я пытаюсь узнать, как включить регулярное выражение в мои Баш скрипты. Любая помощь/предложения были бы весьма признательны. ТИА
Глупый вопрос: если ваши строки все * начинаются * с дня недели, то почему ваши существующие шаблоны glob имеют '*' в начале ING? – ruakh
Я нашел этот фрагмент кода в Интернете и расширил его, включив в него все дни недели. Теперь, когда я начинаю работать с регулярным выражением, мне было интересно, могу ли я удалить их, но я еще не пробовал. – user2615269
В течение нескольких дней не существует * Regex *, вы либо называете их всех, либо имеете регулярное выражение, которое соответствует их избыточному набору, где ваш риск, что он может совпадать с чем-то не точно в день недели –