Globbing

Globbing (от названия программы /etc/glob, которая первоначально использовала этот прием) — это процесс генерации имен файлов в оболочке с использованием wildcards (другое название globbing — pattern match).

  • » * » — ЛЮБОЕ КОЛИЧЕСТВО любых знаков
  • » ? » — ЛЮБОЙ ОДИН знак
  • [a-z]— range, включая отрицание » ! «
  • { txt1, txt2 } — любой текст, указанный в скобках
  • » \ » — возвращает каждому знаку первоначальное значение ( escape )
!ls *.ipynb # " * " может стоять в начале имени
0.Bash_Keyboard_Shortcuts.ipynb
1.Bash_links.ipynb
2.Bash_Wildcards_Globbing_Extended_Globbing.ipynb
3.Bash_ls.ipynb
4.Bash_Permissions_and_Ownership.ipynb
5.Bash_Search_for_files.ipynb
6. Bash_Grep_and_Regex .ipynb
7.Bash_file.ipynb
8.Bash_ps.ipynb
Untitled.ipynb
!ls myfile* #  " * " может стоять в конце имени
myfile	myfile-hardlink  myfile-softlink
!ls *-* #  " * " может стоять в середине имени
hard-link  myfile-hardlink  myfile-softlink
!ls [1-9]*
1.Bash_links.ipynb
2.Bash_Permissions_and_Ownership.ipynb
3.Bash_Search_for_files.ipynb
4.Bash_Wildcards_Regex_And_Quoting.ipynb

Globbing (wildcards) отличается от regex

ls
0.Bash_Keyboard_Shortcuts.ipynb         6.Bash_file.ipynb
1.Bash_links.ipynb                      hard-link*
2.Bash_Globbing.ipynb                   myfile*
3.Bash_ls.ipynb                         myfile-hardlink*
4.Bash_Permissions_and_Ownership.ipynb  myfile-softlink@
5.Bash_Search_for_files.ipynb

Globbing: name expansion

!ls 0*
0.Bash_Keyboard_Shortcuts.ipynb

Regex: pattern

ls | grep -E '^0.*'
0.Bash_Keyboard_Shortcuts.ipynb
!find . -regex '\./0.*'
./0.Bash_Keyboard_Shortcuts.ipynb

Разница между globbing и regex :

a*

Globbing: имя файла начинается c «a», далее может слеовать любая буква

Regex: имя файла должно состоять из повторяющихся «a»

Extended globbing

Расширенный globbing (как расширенный regexp, ERE)? дает возможность пользоваться расширенным набором Wildcards:

  • » *( exp1 | exp2 | … ) » — 0 or more occurrences of exp1 or exp2, or …. ( AWK аналог / exp* / )
  • » +( exp1 | exp2 | … ) » — 1 or more occurrences of exp1 or exp2, or …. ( AWK аналог / exp+ / )
  • » ?( exp1 | exp2 | …) » — 0 or 1 occurrences of exp1 or exp2, or …. ( AWK аналог / exp? / )
  • » @( exp1|exp2|…) » — exp1 or exp2 or … (AWK аналог exp1|exp2|… )
  • » !(exp) » — Anything that doesn’t match exp (AWK аналог !~ )

Extended globbing включается следующим образом:

%%bash
shopt -s extglob # в UBUNTU опция включена по-умолчанию

Отображение скрытых файлов

shopt -s dotglob

По умолчанию, файлы, имена которых заданы при помощи маски, ищутся ls в текущей директории. Чтобы поиск был рекурсивным, необходимо включить опцию globstar

shopt -s globstar

Write a comment:

*

Your email address will not be published.

© 2014 In R we trust.
Top
Follow us: