Попробуйте crontab --справку и используйте
@перезагрузка :ПРИМЕР :@reboot macchanger -r eth0 (Я взял это из видео, так что я отдаю должное тому, что должно быть )https://www.youtube.com/watch?v=OcVE6rQ9_FU04 :38 :57
Убедитесь, что вы соответствуете всей строке, чтобы...
^
начало линии CURRENT DATE
инвариантный текст [0-9]{4}
что-то, что должно быть годом, можно изменить это на 20[0-2][0-9]
, чтобы уточнить год, если хотите (-[0-9]{2}){2}
две группы, похожие на месяц и день с ведущим-
$
конец строки Итак,
cat file
foo
CURRENT_DATE 2020-03-02
bar
banana CURRENT_DATE 2020-03-02
CURRENT_DATE 2020-03-02 banana
с
awk '/^CURRENT_DATE [0-9]{4}(-[0-9]{2}){2}$/{$2=strftime("%Y-%m-%d")}1' file
или
sed -E "s/^(CURRENT_DATE )[0-9]{4}(-[0-9]{2}){2}$/\1"$(date +'%F')"/" file
оба дают
foo
CURRENT_DATE 2020-07-18
bar
banana CURRENT_DATE 2020-03-02
CURRENT_DATE 2020-03-02 banana
И мы могли бы углубиться, чтобы проверить дату, если бы мы действительно хотели, либо с помощью регулярного выражения, либо арифметически
awk '$1=="CURRENT_DATE"&&NF==2{
split($2,d,"-");
if (d[1]*d[2]*d[3]>0&&d[1]<2021&&d[2]<13&&d[3]<32)$2=strftime("%Y-%m-%d")}1' file
Просто так проверка даты (включая високосные годы)
awk '$1=="CURRENT_DATE"&&NF==2{
if (split($2,d,"-")==3 && d[1]*d[2]*d[3]>0){
leapyear=((d[1]%4==0&&d[1]%100!=0)||(d[1]%400==0))?1:0;
month=d[2]+int(d[2]/8);
monthdays=(30+month%2-((month==2)?2-leapyear:0)))*(month<14);
now=strftime("%Y-%m-%d");
if ($2<=now&&d[3]<=monthdays)$2=now
}}1' file
echo 'CURRENT_DATE 2020-03-02' |
awk '/^CURRENT_DATE/ { print "CURRENT_DATE " strftime("%Y-%m-%d"); }'
CURRENT_DATE 2020-07-17
$ cat file
foo
CURRENT_DATE 2020-03-02
bar
$ sed 's/^\(CURRENT_DATE\).*/\1 '"$(date +'%F')"'/' file
foo
CURRENT_DATE 2020-07-17
bar
$ awk -v d="$(date +'%F')" '$1=="CURRENT_DATE"{$2=d} 1' file
foo
CURRENT_DATE 2020-07-17
bar
Ниже команда Соответствует регулярному выражению и заменяет
кошачий файл
CURRENT_DATE 2020-03-02
CURRENT_DATE 2019-04-01
praveen
ajay
abhi
san
2019-04-01
команда
sed "/^CURRENT_DATE/s/CURRENT_DATE.*[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/CURRENT_DATE $(date +%Y-%m-%d)/g" file
выход
CURRENT_DATE 2020-07-18
CURRENT_DATE 2020-07-18
praveen
ajay
abhi
san
2019-04-01
питон
#!/usr/bin/python
import re
import datetime
from datetime import date
cu=date.today()
k=re.compile(r'^CURRENT_DATE [0-9]{4}-[0-9]{2}-[0-9]{2}')
m=open('file','r')
for g in m:
if re.search(k,g):
ou=re.sub(k,"CURRENT_DATE {0}".format(cu),g)
print ou.strip()
else:
print g.strip()
выход
CURRENT_DATE 2020-07-18
CURRENT_DATE 2020-07-18
praveen
ajay
abhi
san
2019-04-01