Если с англоязычными именами директорий в maildir проблем нет — отображаются они в точно так-же как и в почтовом клиенте, то с русскоязычными именами всё не так просто. Например, директория «Отправленные» в maildir — &BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-. Читать
Архив метки: Bash
Исключить из одного файла строки, присутствующие в другом файле
Всё, как обычно, оказалось тривиально. Прямо как говорила наш преподаватель по мат. анализу=) У команды grep есть подходящий для этой задачи набор флагов:
grep -v -x -f except.txt source.txt, где
- -v отобрать не совпавшие с шаблоном строки
- -x сравнивать строку целиком
- -f except.txt файл с набором шаблонов для поиска, разделенных переносом строки
- source.txt — исходный файл для поиска и исключения вхождений из файла except.txt (естественно, его можно заменить на подачу через пайп)
Автор: Василий Иванов
${0%${0##*/}}
Есть небольшой трюк в bash, который мне давно нравился — получение текущей директории запущенного скрипта, используя только $0 и операции над строками bash-а. Это то, что в заголовке. Как вариант, его можно использовать в виде:
cd ${0%${0##*/}}Исходные данные: $0 — полный путь запущенного скрипта. Понятно, что скрипт надо выполнять по полному пути, иначе использование метода лишено смысла.
Используются последовательно две операции над строками:
${string##substring} — удаление самой длинной, из найденных, подстроки $substring в строке $string. Поиск ведется с начала строки.
${string%substring} — удаление самой короткой, из найденных, подстроки $substring в строке $string. Поиск ведется с конца строки.
${0%${0##*/}} — самая длинная из найденных строк */ — это весь путь до последнего слеша включительно. Если удалить это из полного пути, то получится просто имя файла самого скрипта (без пути).
${0%${0##*/}} — далее, если из $0 («полный путь») удалить «имя файла» (получено выше), то получится как раз «путь без имени файла».
Автор: Dmitry Medvedev
Полезные Bash скрипты
Пример: очень простой скрипт резервного копирования:
#!/bin/bash SRCD="/home/" #SRCD - SouRCe Directory - исходный каталог TGTD="/var/backups/" #TGTD - TarGeT Directory - конечный каталог OF=home-$(date +%Y%m%d).tgz #OF - Output File - выходной файл tar -cZf $TGTD$OF $SRCD