Portál AbcLinuxu, 24. dubna 2024 15:57


Dotaz: pridat znak(#) na dane miesto v subore

12.1.2011 14:34 marian34
pridat znak(#) na dane miesto v subore
Přečteno: 400×
Odpovědět | Admin
Dobry den,pre niekoho asi malina,ale pre mna spanielska dedina.

Potrebujem zakomentovat riadok(x-ty) v crontabe prikazom,reg. vyrazom,scriptom-proste niecim.

Riadok vybrat podla poradia,alebo porovnat podla obsahu-zaciatok riadku
*/30
vysledok

#*/30


Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.1.2011 16:19 marian34
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Odpovědět | | Sbalit | Link | Blokovat | Admin
awk ' {if(/30/) { print "#" $0} else {print $0} } ' crontab

no nedari sa mi to ulozit do toho isteho suboru

po

crontab > crontab

je subor nulovy

12.1.2011 16:46 marian34
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
awk ' {if(/30/) { print "#" $0} else {print $0} } ' crontab > cronmod && mv cronmod crontab

sice funkcne,ale nemam z toho dobry pocit

12.1.2011 16:52 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Prečo? Ak presmeruješ výstup nejakého príkazu do súboru, tak sa najprv ten súbor vyrobí (alebo skráti na nulu) a až potom sa vyrobí proces, ktorý do toho súboru má písať. Takže ten awk ti pracoval už nad prázdnym súborom.
12.1.2011 16:59 marian34
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Ok,dik za objasnenie.
12.1.2011 17:40 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
To není moc bezpečné, vždyť to zakomentuje všechny řádky, kde se to číslo 30 objevuje kdekoliv. Jestli znáš číslo řádku (dejme tomu 17), tak je to lepší takto:
awk '{ print (NR == 17 ? "#" : "") $0 }'
12.1.2011 22:55 marian34
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Cislo riadku je zname,no z toho tvojho vyrazu som nezmudrel.Nevidim tam co sa ma citat a kde sa to ma ulozit.
13.1.2011 15:35 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Je to AWK program na zakomentování N-tého řádku. Předpokládal jsem, že vstup a výstup si doplníš sám.
14.1.2011 13:11 marian34
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Ok,dik,funkcne.
12.1.2011 18:07 Ondřej Kopka | skóre: 20 | blog: ondrejk
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus tohle:
sed -ri "s/^\*\/30/#&/" /etc/cron.d/foo
12.1.2011 23:01 marian34
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Pekné,naozaj by som na to -ri asi v zivote neprisiel.
Tarmaq avatar 14.1.2011 12:17 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
pripadne pokud to chces zakomentovavat podle cisla radku tak to se da udelat takhle:
sed -ri "42s/^/#/" /etc/cron.d/foo
Don't panic!
12.1.2011 18:12 qazasd
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Odpovědět | | Sbalit | Link | Blokovat | Admin
nebo s pouzitim sedu:

sed -ri 's/^(\*\/30)/# \1/' /etc/crontab
12.1.2011 18:19 qazasd
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Ha! Pozde. Ted to vypada ze opisuji :) ... kazdopadne priznavam, ze konstrukce s & - odkazem na na cely regularnim vyrazem vybrany text je elegantnejsi nez pouziti () a \1 ... i kdyz vysledek je vlastne stejny
13.1.2011 11:41 andro
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Odpovědět | | Sbalit | Link | Blokovat | Admin

Cron obycejne spousti script ci binarku.

- pokud spousti script - pridal bych na zacatek scriptu testovani, zda napriklad nejaky soubor nekde existuje a pokud ano, tak exit.

- v pripade spousteni binarky bych binarku zabalil do scriptu a postupoval obdobne.

Takto mi to prijde elegantnejsi, nez byt zavisly na cisle ci obsahu radku.

PS Mysleni mimo krabici...

14.1.2011 21:18 Honza Vrana
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
Je tu krasnych prikladu jak zakomentovat radek a myslim ze se to muze leckde hodit. Diky.

Ale kdyz se mluvi o cronu. Tak by me zajimalo k cemu to dotycny potrebuje ? Pokud jde o to vypinat ci zapinat na nejakou dobu ulohu v cronu.

Prijde mi elegantni vytvorit si soubor s onim radkem z cronu a pak vytvaret a mazat symlink do /etc/cron.d

nebo z toho cronu zpoustet bash skript ktery provede onu akci a kdyz nebudu chtit tak ten bash skript prejmenuju a podstrcim mu nejakej prazdnej. Ale to je obdoba toho co pise andro

Honza Vrana
14.1.2011 22:02 marian34
Rozbalit Rozbalit vše Re: pridat znak(#) na dane miesto v subore
V crone sa spusta script,ktory pri urcitom stave(nazvyme tento stav chybovy) odosiela email->tento je nastaveny na sms notifikaciu.Po takomto spusteni scriptu je neziaduce,aby sa spustel znovu.Pokial prebehne script bez chybovej hlasky,je nadalej v intervaloch spustany cronom.

Nic lepsie ako zakomentovat riadok v crontabe ma nenapadlo

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.