Архив за месяц Февраль 2017

Автор:human

Копирование файлов cp — только отсутсвующие файлы

Автор:human

Fix problem with nvm in docker «node command not found»

Fix by add to .bash_profile

export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh

Автор:human

Верстка wordpress — работаем с темой от roots.io — sagemaster

Для начала установим nodejs через nvm. Ставить будем версию 7.1.0. Делается это в пару команд.

Далее идем в каталог с вашим сайтом в папку wp-content/themes
Клонируем репу в папку itclifesagemaster

Ok. Идем далее
Устанавливаем composer в каталоге с темой

Автор:human

Работаем c sed

Sed

Утилита sed это мощный потоковый редактор текста с поддержкой регулярных выражений. С помощью sed вы можете заменять шаблоны текста (причем непосредственно в файле!), удалять строки (элементы массива), выводить подходящие по маске строки (подобно grep). Редактор sed поддерживает применение нескольких команд и расширенный синтаксис регулярных выражений (при котором не нужно экранировать спец. символы).

Важно!

В sed нет поддержки опережающих и ретроспективных проверок в регулярках! Для замены с использованием расширенного синтаксиса regex используйте:

Внимание!
В sed довольно проблемно работать с символом перевода строки! Самое удобное решение — это:

Шаблон:

sed [-opt] ‘s/regex/replace/flag’ input-file

sed ‘s/regex/replace/flag’ # замена найденных подстрок
sed ‘1,5s/regex/replace/gi’ # замена только в указанном диапазоне строк
sed -r ‘s/regex/replace/g’ # расширенный синтаксис regex (со спец символами)
sed ‘s/regex//g’ # удалить найденные подстроки
sed ‘/regex/d’ # удалить строки подходящие по маске
sed -n 2p # вывести 2ю строку
sed -n ‘/composer/p’ # вывести только строки подходящие по маске
В качестве разделителей можно использовать любые символы (напрмиер: #, @). Match части (которые внутри круглых скобок) доступны как \1, \2, \n.

Опции:

-e — добавление скрипта или regex в исполняемые команды
-r — использовать расширенный синтаксис регулярных выражений (спец символы активны по умолчанию)
-d — удалить
-s — заменить
-p — распечатать найденную строку
-i — выполнять изменения непосредственно в файле
Флаги:

p, печать найденных подстрок
i,-l регистронезависимый поиск
g глобальный поиск/замена, а не только первое совпадение
d удалить строки
Примеры

Фильтрация строк

Вывести строки 1-5:

Вывести файлы соответствующие маске:

Строки длиннее 80 символов:

Замена вхождений

Вывести вхождения (matches) через табуляцию:

Заменить названия файлов (composer на composer-dev):

Заменить символы (regex):

Заменить URL в файле (штука в разделителях |, и -i для замены в файле):

Удалить начальные пробелы (аналог ltrim):

Удаление строк

Удалить первую строку вывода:

Заменить подстроку:

Примечание
По умолчанию необходимо экранировать все спец. символы в regex’ах, что крайне затрудняет чтение масок. Для того, чтобы экранировать спец.символы только в случае описания в тексте их самих — включите расширенный режим regex выражений с помощью опции -r.
Удалить пустые строки:

Удалить последние N=2 символа:

Извлечение подстрок

Вырезать / запомнить последние N=4 символа:

Замена строки со спецсимовалами
В данном примере заменим

на

для всех файлах в каталоге /etc/nginx/conf.d/ с расширением .conf
делаем командой

Яндекс.Метрика