Ahoj, potrebuju v bash skriptu vymazat nejaky radky z cronu pomoci prikazu sed. To, co se ma mazat mam ulozene v promenne a potiz je v tom, ze ten retezec obsahuje nejen lomitka, ale i hvezdicky, lomitka, tecky a dalsi znaky, ktery sed pouziva jako ridici a v cronu se hojne vyskytujou.
Priklad:
naplnim si $promennou
$promenna=`echo "$minuta $hodina $den $mesic * $cesta/$mujsckript $parametr1`
takze $promenna obsahuje treba toto:
05 12 16 02 * /home/user/test/test.sh 14953
a v cron souboru mam toto:
# blabla
# blabla
05 12 16 02 * /home/user/test/test.sh 14953 50
00 11 19 02 * /home/user/test/test.sh 29845 43
.
.
Zajima nas teda radek, ktery obsahuje 14953, ale to cislo se bohuzel muze v cronu opakovat vickrat jako parametr jineho skriptu nebo v jiny cas, proto nemuzu jednoduse hledat jen radky s tim jednim cislem, ale presne i s tim prikazem a casem. Druhy parametr skriptu test.sh (v nasem pripade 50) muze byt libolne cislo, takze proto je jeste v sed prikazu za ${promenna} ta .*
sed "/${promenna}.*/d" ./muj.cron > ./tmpf
rm -f ./muj.cron
mv ./tmpf ./muj.cron
crontab ./muj.cron
Vyse uvedeny sed samozrejme nefunguje, nejspis proto, ze nema oescapovano. Poradte mi prosim, jak mam tu $promennou (resp retezec v ni) oescapovat tak, aby mi to fungovalo. Zkousel jsem ruzne tipy, co sem nasel na netu, ale tim, ze mam v promenne i tu hvezdicku, tak mi to nepomuze misto / pouzit #, krom toho jsem zjistil, ze to u delete prikazu stejne nejde.
Predem dekuji.