Что не так с моим регулярным выражением?

Принятый ответ абсолютно правильный, просто если вы хотите увидеть видимый размер, вы можете использовать:

du --apparent-size

печатать видимые размеры, а не использование диска; хотя видимый размер обычно меньше, он может быть больше из-за дыр в («разреженных») файлах, внутренней фрагментации, косвенных блоков и т.п.

0
31.05.2017, 22:21
2 ответа

Вы также можете использовать оператор case:

REGEX="[2][0-2]:[0-5][0-9]"; # Note no placeholders like ^ and $ here
TIME="21:30"
case $TIME in
   $REGEX ) echo "Worked" ;; # Note no double quotes around $REGEX for allowing the wildcard matching to happen
        * ) echo "Did not work" ;;
esac
1
28.01.2020, 02:19

Простое =неверно для сравнения регулярных выражений. Вы должны использовать =~, и вам также придется использовать двойную скобку:

if [[ $TIME =~ $REGEX ]]; then
 ...

См. также:https://stackoverflow.com/questions/17420994/bash-regex-match-string

3
28.01.2020, 02:19

Теги

Похожие вопросы