Често има любопитни имена в компютърните неща. Може би знаете vi. Там, например, има следната команда:
s/foo/bar/
Това замества първото срещане на foo с bar в текущия ред. Съществува и по-обща версия – g:
g/something/s/foo/bar/
Това замества foo с bar на редовете, които съдържат something. Демек, g приема шаблон и команда, която прилага на всички редове, в които шаблона съвпада. Ето как може да изтриете редовете, съдържащи something:
g/something/d
Тези неща идват от един още по-архаичен текстов редактор – ed. Там има команда p, извеждаща всички редове, в които шаблона съвпада. Но все пак, ето как да изведете всички редове от текущия файл, съдържащи something:
g/something/p
Впрочем, something е регулярен израз – „regular expression“, често съкращавано като „re“. Общия запис на командата е:
g/re/p
И ето откъде идва името на една от най-използваните shell команди в POSIX света.
Забавно, а?