Как с помощью vim получить количество определенных символов в файле

Краткий сценарий:

#!/bin/sh

mail -s "Hi, it's me again" user@host <<'END_MAIL'
Hi,

Just wanted to say I'm still here.
Don't forget to feed the cat.

Regards,
Me
END_EMAIL

Расписание Cron:

10 * * * * /path/to/script.sh

Вы должны написать сценарий, который в данном случае представляет собой всего лишь одну команду, которая отправляет электронное письмо с определенной строкой темы и содержимым кому-то, сделать его исполняемым с помощью chmod +x script.shи поместить куда-нибудь, например. в вашем домашнем каталоге.

В теле сообщения (, которое представлено как здесь -документ в сценарии выше ), если вам нужно иметь переменные или подстановки команд, расширенные оболочкой, измените 'END_EMAIL'наEND_EMAIL(т.е. убрать кавычки ). Обратите внимание, что это означает, что любой $, который вы не хотите интерпретировать оболочкой как начало расширения, в этом случае должен экранироваться как \$.

Расписание cron можно добавить, используя crontab -eи введя одну строку выше. Сохранение этого и выход из редактора активирует расписание, и оно будет вызывать ваш скрипт каждые 10 минут.

Вам следует прочитатьcrontab(5)(man 5 crontab)о том, как форматировать расписания crontab.

Если вы хотите изменить содержание, тему или получателя электронного письма, отредактируйте сценарий. Если вы хотите изменить расписание, измените crontab, используя crontab -e.

0
23.03.2021, 15:59
2 ответа

В то время как другой ответ в порядке, я хотел просто количество выписанных символов.

Это может быть достигнуто с помощью конвейерной обработки grepиwc:

:%!grep -o '[0-9]' | wc -l
1
28.04.2021, 22:57

Если я вас правильно понял, вы можете попробовать это:

111
222
333
~
~ 
:redi>>%|%s/\d//gn|redi END
9 matches in 3 lines

После этого обновите буфер с помощью

:e
2
28.04.2021, 22:57

Теги

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