Учебник, на который вы ссылаетесь, очень поверхностен.
Если вы хотите серьезно использовать sed, я предлагаю вместо него http://www.grymoire.com/Unix/Sed.html .
Команда s
в sed принимает из шаблона
, в строку
и, возможно, некоторые флаги
. Обычно они разделяются символом /
, но могут использоваться любые знаки препинания, и это целесообразно, если аргументы from или to содержат символы /.
Итак, в этом случае флаги равны g
, шаблон from - (^ [a] | \. [Az])
, а строка to - \ U & \ E
На этом этапе вам нужно знать, как понимать шаблон from. Символы ()
используются для группировки частей рисунка вместе. Операции |
являются операциями или
, поэтому this | that
будет соответствовать либо this
, либо that
. ^
соответствует началу строки, а [a]
соответствует букве a
, поэтому ^ [a]
соответствует буква a
в начале строки. \.
соответствует .
, пробел соответствует пробелу, а [az]
соответствует символу между a
и z
включительно (надеюсь, это все строчные буквы буквы и больше ничего). Собирая это вместе, вы получаете \. [a-z]
соответствует точке (точке), за которой следует пробел, за которым следует буква между a
и z
включительно.
Строка to \ U & \ E
декодируется следующим образом. &
- символы, соответствующие шаблону from. \ U
говорит о преобразовании в верхний регистр, а \ E
говорит о завершении преобразования. \ U и \ E - это расширения gnu для sed. Вот POSIX sed
Флаги g
говорят, что нужно повторять сопоставление столько раз, сколько возможно, и делать замены.
Таким образом, код, который вы скопировали из учебного пособия, преобразует либо нижний регистр a в начале строки, либо последовательность «период пробела lower_case_letter» в верхний регистр.
Когда дело доходит до общего случая «точечных файлов», здесь долгая история, но каталоги $ HOME / .config
и $ HOME / .local
, которые вы специально Упоминания имеют происхождение из XDG Base Directory Specification .
$ HOME / .config
- это файлы конфигурации для каждого пользователя, если нет $ XDG_CONFIG_HOME
. $ HOME / .cache
- это файлы кеша для каждого пользователя, если нет $ XDG_CACHE_HOME
. $ HOME / .local / share
- это то место, куда отправляются файлы данных для каждого пользователя, если нет $ XDG_DATA_HOME
. Пользователи Windows могут признать это аналогом того, что Microsoft использовала в Windows NT, начиная с версии 4 (хотя имена изменились в версии 6.0):
% USERPROFILE% / AppData / Local /
aka % LOCALAPPDATA%
- куда идут файлы данных для каждого пользователя для этого компьютера % USERPROFILE% / AppData / Roaming /
aka % APPDATA%
- где файлы данных для каждого пользователя, которые пользователь в роуминге может получить доступ с нескольких машин: % USERPROFILE% / AppData / Local / Temp /
aka % TEMP%
- куда попадают временные файлы для каждого пользователя Идея в том, что файлы для каждого пользователя могут быть (среди множества других вещей) файлами данных приложения (машинно-зависимыми или перемещаемыми), файлами конфигурации приложения , кэшированными файлами , и временных файлов , и приложения помещают их в поддеревья с корнями в этих конкретных каталогах.
(MacOS имеет аналогичную систему, в которой пользователи получают отдельные "локальные" поддеревья для каждого пользователя в / var / folder
с подкаталогами C
и T
для кэш и временные файлы.)
Как отмечают специалисты Arch, есть некоторые "точечные" файлы и каталоги, которые стали широко использоваться несколькими приложениями и вряд ли согласятся с XDG в обозримом будущем, например $ HOME / .ssh
и $ HOME / .netrc
.