экстракт crontab cron выражение - PullRequest
2 голосов
/ 04 февраля 2020

Когда я делаю crontab -l , я вижу все свои задания

56 12 3 2 * /usr/bin/python3 /home/pi/Saqib/RaspBerryPiAdhan/www/commands/player.py "https://server6.mp3quran.net/akdr/001.mp3" "Office Ustairs speaker" >> .error.log  2>&1 # Al-Fatiha - [Verses 7]
56 12 * * * /files/python3 /home/pi/Saqib/RaspBerryPiAdhan/www/commands/player.py "https://server6.mp3quran.net/akdr/001.mp3" "Office Ustairs speaker" >> .error.log  2>&1 # Al-Fatiha - [Verses 7]
31 18 3 2 * /usr/bin/python3 /home/pi/Saqib/RaspBerryPiAdhan/www/commands/player.py "/static/media/azan5.mp3" "Office Ustairs speaker" # prayer_isha

. В любом случае, я могу только извлечь только «Выражение»?

Мне нужно вот так ...

56 12 3 2 * 
56 12 * * * 
31 18 3 2 * 

Ответы [ 3 ]

6 голосов
/ 04 февраля 2020

Это должно работать:

crontab -l |awk '{NF=5}1'

Здесь вы сообщаете awk, что количество полей в каждой строке равно 5, что приводит к печати первых пяти столбцов.

0 голосов
/ 05 февраля 2020

Вырезать тоже надо.

crontab -l | cut -d ' ' -f-5
0 голосов
/ 04 февраля 2020

Вы можете использовать следующее

crontab -l | sed 's/  *\/.*//'

, которое заменяет все (.*) после sla sh (которое необходимо экранировать, \/), включая его и пробелы перед ним (*) с пустой строкой.

Как указано в комментариях, это решение вообще не является надежным, поскольку оно опирается на формат, свойственный примеру в вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...