2012-03-15 3 views
0

Как проверить, соответствует ли строка определенной схеме?Shell scripting: Как проверить, соответствует ли строка определенной схеме?

Например, у меня есть $ var, в котором хранится «hello.txt», и шаблон, который я хочу сопоставить, это «^ (. +). Txt $" (т. Е. Что-нибудь, что имеет «[любой текст здесь] .txt "

ответ

0

с Баш встроенных команд = ~ вы можете сделать это:

if [[ "aaaa" =~ a+ ]] 
then 
    echo "ok" 
else 
    echo "no" 
fi 
+0

могу ли я использовать Shell, встроенный '= ~' – Sakura

+0

Абсолютно? лучше – kappa

+0

Это совершенно глупо, учитывая, что is не вызывает регулярное выражение и может быть легко выполнен на переносимом языке оболочки, описанном POSIX, без расширений 'bash'. – Kaz

3

вы также можете использовать оболочку Глоб модели:

if [[ "$var" == *.txt ]]; then ... 

case "$var" in 
    *.txt) do something ;; 
    *) do something else ;; 
esac 
+1

桜 さ ん, そ の 緑 の 印 こ こ に 移 っ て い. (> _ 〇) – Kaz

Смежные вопросы