Поместите файл в /etc/cron.d/get2ndmonth
с таким содержанием:
59 23 02 * * joe echo "mget test_text_$(date +\%Y\%m\%d)_*.csv" | ftp example.org
It будет запускаться каждые 2
месяца в 23:59
для пользователя joe
.
(Пожалуйста, отредактируйте исходный вопрос, если он неясен)
Вероятно, можно объединить первые три вызова sed, как это
cat eciremoteExec1.txt | sort | uniq -c | awk -F " " '{print $3}' |
sed 's/$/ working IP/;s/ working IP//; $ d' | paste -s -d ' ' |
sed 's/working IP$//'
, но трудно сказать, не зная, какие входные данные допустимы, а какие желательны.
Речь идет не только об объединении нескольких sed
команд. (Джейсен объяснил эту часть в своем ответе ). Вы можете узнать больше:
cat file | sort...
cat
не нужно, так как вы можете дать sort
имя файла, вам не нужно cat
раньше, но сделайте
sort file | uniq -c | awk...
uniq -c
удаляет дубликаты и добавляет счетчик, но, поскольку следующий awk
использует только третий comlun, поэтому счетчик все равно сбрасывается. Вы можете удалить -c
и заменить весь uniq
опцией -u
на sort
:
sort -u file | awk -F " " '{print $2}' | sed...
Здесь вы неправильно используете awk
вместо cut -d" " -f 2
, но вы можете это сделать. Но теперь вы можете продолжить использовать awk
или выполнить этот шаг и в sed
. Нет необходимости переключать инструменты для задачи, которую одинаково можно выполнить в каждом инструменте :
sort -u file | sed 's/[^ ]* *\([^ ]*\).*/\1 working IP/'...
Здесь уже странно не знать исходный файл. Но если вы добавляете working IP
к каждой строке, удалите его для всех в диапазоне до первого появления,это должно быть идентично добавлению во всех строках, кроме первой:
sort -u file | sed 's/[^ ]* *//;s/.*//;1!s/$/ working IP/'
Затем paste
можно легко включить в sed
, собрав строки в удерживаемом пространстве и позже заменив первые новые строки пробелом, а все остальные — working IP
. В то же время удаление последней строки($ d
)может быть выполнено, поэтому целая миля -длинная командная строка с 6 различными командами и 8 трубами сгорает до простой sort
, только одной трубы и короткой sed
сценарий:
sort -u file | sed 's/[^ ]* *//;s/.*//;$!{H;1h;d;};x;s/\n/ /;s// working IP /g'
Идентичный результат без затрат целой жизни на чтение вариантов на man
страницах и анализ происходящего на каждом этапе.