Что означает [[:space:]] в bash?

También puede simplemente pasar por las particiones que necesita. Entonces, supongamos que su instalación de Windows está en la partición 1 del disco sda. En lugar de especificar /dev/sdaen la configuración de KVM/QEMU, reemplace con /dev/sda1y repita para cualquier otra partición como discos separados.

23
16.07.2019, 04:40
1 ответ

В регулярных выражениях и шаблонах шаблонов имен файлов/оболочек конструкция [...]соответствует любому одному символу из перечисленных в квадратных скобках. В этих скобках может использоваться ряд именованных стандартных символов классов символов . Одним из них является [:space:], который соответствует пробельным символам (, например \sв регулярных выражениях Perl ). См., например. Сопоставление шаблонов в руководстве по Bash

Таким образом, [[:space:]]является частью регулярного выражения или сопоставления с образцом, которое соответствует только пробелам.

. соответствие шаблону (стандартная оболочка, а не специфичная для Bash -):

case $var in 
    *[[:space:]]*) echo "'$var' contains whitespace";;
esac

или регулярное выражение (Bash):

if [[ $var =~ [[:space:]] ]]; then
    echo "'$var' contains whitespace"
fi

Заметьте, что даже несмотря на то, что скобочные выражения [...]работают одинаково в регулярных выражениях и шаблонах оболочки, они, как правило, очень не неодинаковы.(caseи [[ string == pattern ]]используют сопоставление с образцом, [[ string =~ regex ]]использует регулярные выражения.)

Регулярные выражения также не зависят -от оболочки, они используются, например, в. awkи sedи описаны, например, в. справочная страница Linuxregex(7)

9
27.01.2020, 19:41

Теги

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