Bash, Пишущий сценарий команд VIM

Чтобы сделать это, необходимо было 'знать' сервер к Интернету так, чтобы остальная часть мира (включая почту Google) знала, где продвинуть электронные письма. И затем выполненный MTA на Вашем сервере (как постфикс), с которым может соединиться внешний мир, для поставки электронной почты. MTA затем ответственен за поставку каталог шпульки.

Я вполне уверен, который требует фиксированного IP-адреса, где Ваш сервер может быть достигнут, и сервер, который онлайн большую часть времени.

Если это только для единственной учетной записи, намного легче создать специальный почтовый ящик где-нибудь (например, Gmail) и забрать ту электронную почту с заданием крона тот вызов fetchmail и поставляет к локальному MTA. Это не требует фиксированного IP для сервера, ни что порт для MTA (25) на сервере достижим от внешнего мира.

2
18.02.2015, 10:34
2 ответа

Автоматическое издание должно быть выполнено с использованием SED (1) (см. MAN SED )

Подобные ваши ищеты

 sed -i -e s/old/new/g -e /deletethis/d -e '/^$/d' postgresdb.out

Я не уверен, что вы ожидаете с :% S / \ N \ N // D .

Где

  • -I означает редактирование на месте (обычно SED будет выводить издание сделать стандартный выход)
  • -E ... сделать издание / удаление
  • -E '/ ^ ^ $ / D ' Shoudl Удалить пустые линии
1
27.01.2020, 22:05

Альтернативы

Если вам действительно не нужны особые возможности Vim, вам, вероятно, лучше использовать неинтерактивные инструменты , например ] sed , awk или Perl / Python / Ruby / ваш любимый язык сценариев здесь .

Тем не менее, вы можете использовать Vim в неинтерактивном режиме:

Тихий пакетный режим

Для очень простой обработки текста (т. Е. Используя Vim как расширенный 'sed' или 'awk', возможно, просто извлекая выгоду из улучшенного обычного выражения в : замените команду ), используйте Ex-режим .

REM Windows
call vim -N -u NONE -n -i NONE -es -S "commands.ex" "filespec"

Примечание: пакетный режим без вывода сообщений (: help -s-ex ) приводит к сбоям в работе консоли Windows, поэтому вам, возможно, придется выполнить cls для очистки после запуска Vim.

# Unix
vim -T dumb --noplugin -n -i NONE -es -S "commands.ex" "filespec"

Внимание: Vim зависнет в ожидании ввода, если файл "commands.ex" не существует; лучше заранее проверьте его наличие! Кроме того, Vim может читать команды из стандартного ввода. Вы также можете заполнить новый буфер текстом, прочитанным из stdin, и прочитать команды из stderr, если вы используете аргумент - .

Полная автоматизация

Для более продвинутой обработки, включающей несколько окон, и реальной автоматизации Vim (где вы можете взаимодействовать с пользователем или оставить Vim работающим, чтобы позволить пользователю взять на себя управление), используйте:

vim -N -u NONE -n -c "set nomore" -S "commands.vim" "filespec"

Вот краткое изложение используемые аргументы:

-T dumb           Avoids errors in case the terminal detection goes wrong.
-N -u NONE        Do not load vimrc and plugins, alternatively:
--noplugin        Do not load plugins.
-n                No swapfile.
-i NONE           Ignore the |viminfo| file (to avoid disturbing the
                user's settings).
-es               Ex mode + silent batch mode -s-ex
                Attention: Must be given in that order!
-S ...            Source script.
-c 'set nomore'   Suppress the more-prompt when the screen is filled
                with messages or output to avoid blocking.
2
27.01.2020, 22:05

Теги

Похожие вопросы