Új hozzászólás Aktív témák
-
bambano
titán
válasz CPT.Pirk #2321 üzenetére
szóval a legfőbb gond, hogy így windowson programoznak.
a unixok legnagyobb előnye, hogy minden fájl, és karakteresen mindent lehet olvasni, írni.
ezért az első, amit javítani kellene, hogy nincs tempfile1 meg tempfile2, hanem egy menetben átmegy minden a parancsokon. ennek a unixos megoldás a csővezeték, pipeline.
tehát: az első parancs olvas egy fájlt, az összes többi nem, az utolsó pedig leteszi egy fájlba az eredményt:egrep ... logfile | sed .... | awk ... | sed >kimenet
a második, hogy a sednek több programot is meg lehet adni egyszerre (a sed programnak hívja a s/... kezdetű paraméterét)
tehát nem sed program1 | sed program2 hanem
sed program1 program2 program3a harmadik, hogy az awk és a sed is tudja, amit az egrep. érdemes lenne minél kevesebb programot használni, mert annál bonyolultabb minden.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz CPT.Pirk #2327 üzenetére
javaslom az mktemp manualjának olvasgatását
következő lépésként javasolt, hogy specifikus awk-ot használj, mert az awk-k tapasztalat szerint nem egyformák.ha így írtad a paste-t, akkor szerintem az előtte levő awk-kal és az utána levő cat-tal is össze lehet vonni:
awk ... | paste -d ' ' - - >${...}.txtannak nem látom értelmét, hogy a paste-vel kitolod egy temfile-ba, majd azt simán átmásolod a véglegesbe. akkor már mehet rögtön a véglegesbe.
szerk: ha olyan problémád van, hogy a paste-nél megáll a szkript, az egy olyan eset, ami máskor is előfordulhat. más esetekben lehet olyan gond, hogy az előző programnak nincs kimenete, ezért a következő bemenet megakad. ilyenkor érdemes közé tenni egy cat - /dev/null-t.
tehát azt írni, hogy:
awk | cat - /dev/null | paste -d ' ' - - >${...}.txt
de ez nem biztos, hogy erre a konkrét esetre is kell, most nem fogom a konzolon kipróbálni
szerk2: rendszergazdaként futtatott szkriptekben az rm $tempfile annyira nem frankó, csak ha megnézted, hogy pontosan mi is az a file
[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz 0xmilan #2329 üzenetére
a nohup arra való, hogy elkapja a hup szignált és lenyeli.
magyarul ha nohuppal indítasz el bármit, akkor azt nem tudja a shell kilőni, mikor a shellből kilépsz, tehát háttérben fog futni a folyamat.a wait erre nem jó neked, amit akarsz? mert egyébként nagyon zagyva, hogy pontosan mit is szeretnél...
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
bambano
titán
válasz Geripapa #2353 üzenetére
"Ez lett a végeredmény": azt te csak hiszed
szóval ez a másfél méter if-elseif csak az én szemem bántja?
szóval egy case-t nem lehetne helyette, ha már a printf-et nem ismerjük?másrészt még mindig nem grep '<title>' -re keresel.
harmadrészt sed után tr-t, az forkbomba.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz jani-wan #2358 üzenetére
ebben van fejezet a shellről.
de ha nem olvasod el minimum a unix alapjait, akkor nem fogod megérteni, hogy miért olyan a shell, amilyen. és akkor jönnek majd az olyan szkriptek, amiket még az ellenségemnek se adnék, ellenpéldaként se.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
tehát szerinted az, hogy a find az aktuális könyvtárat kilistázza, meg az, hogy az ls az aktuális könyvtárat kilistázza, azt jelenti, hogy az ls átvette a find kimenetét? vagy csak ugyanazon könyvtárban ugyanazon funkció "véletlenül" ugyanolyan eredményt ad?
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz Victor Súgó #2396 üzenetére
"1) find ...paraméterek | xargs | ls": ezen még dolgoznod kellene.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz kovyhun #2428 üzenetére
azt csináld meg, hogy a soros porthoz csak a ser2net férjen hozzá, és a helyi kliens is ugyanúgy kapcsolódjon, mintha távoli kliens lenne.
nem ismerem a ser2netet, de ha inetd alól is lehet futtatni, akkor az megoldja a sorbanállási problémát.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz Fecogame #2432 üzenetére
a grepnek (is) annyi fájlmevet adsz meg paraméterként, amennyit akarsz (amennyit a shell elvisel). tehát írhatod:
grep valami /var/log/syslog.1 /var/log/syslog /var/log/messages.1 /var/log/messages satöbbi
arra az esetre, ha a fájlnév kiterjesztéses megoldás nem jutna eszedbe.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
ha mindenáron text fájlból akarsz olvasni, akkor tail.
tail -f textfile| program
ha rendesen, unixként akarod kezelni a rendszert, ahogy anno megálmodták, akkor nem teszed le textfájlba a kimenetet, hanem rögtön beküldöd a szkriptnek.
pythonprogram | shellszkript
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
azt mondod a python programban, hogy írja ki a két változót (nem értek pitonhoz, csak példa):
print x+"|"+y;
ezt ciklusban.
azt mondod a szkriptben, hogy:while IFS='|' read x y; do
csinálsz valamit $x-szel és $y-nal
doneEgy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz Fecogame #2450 üzenetére
ha és amennyiben a piton programozók értettek a dolgukhoz, akkor ez nem is fog működni. ennek a fő oka az, hogy unixban az a szokás, hogy jelszót nem a szabvány bemenetről olvasunk, hanem a terminálról. tehát van rá reális esély, hogy a setup.py program eldobja az stdin-t, és megnyitja a /dev/tty-t és arról akar olvasni, azt pedig nem tudod átirányítani.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
kicsit beszorultam idővel, tudna valaki tippet adni, hogy lehet lementeni egy kriksz-kraksz fájlneveket is tartalmazó könyvtárat tarral úgy, hogy bizonyos fájlokat ki akarok hagyni?
kösz
ui: ha olyan egyszerű volna, hogy elolvasom a manualt és beírom a megfelelő kapcsolót, akkor nem kérdeznék itt...Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz Jester01 #2471 üzenetére
közben én is szöszöltem vele: azon száll el, hogy utf-8-ban egyes karakterek kétbájtosak, és ettől fejreáll a parser.
a megoldás: visszakapcsoltam egybájtos kódolásra, és akkor már működik a tar beépített exclude-ja.tehát az, hogy:
tar cf backupfile konyvtar --exclude '*.pst'
nem működik, de az, hogy:LANG=en_US tar cf backupfile konyvtar --exclude '*.pst'
igen.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
-
bambano
titán
válasz Fecogame #2504 üzenetére
ez a 101-102 sorok se tetszenek...
a dirname $0/basename $0 az, szerintem, $0.
de az idézőjeleket úgy nem lehet egymásba ágyazni szerintem.szerk: ha matatod a fájlrendszerben a root crontabját, akkor a cron-t illene újraindítani. de, szerintem nem így kellene matatni, hanem a /etc/cron.d alá berakni egy saját crontabot és azt törölni uninstallkor.
[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz dabadab #2524 üzenetére
"ott meg kell hívni valami külső programot számolni": vagy érteni kell az elemi matematikához... mondjuk a negatív számok bekavarnak.
elvileg: a(x+1)/a(x)<a(x+2)/a(x+1) ezt megszorzod a(x)*a(x+1)-gyel:
a(x+1)*a(x+1)<a(x)*a(x+2)
ez számolható bash-ban.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz RedHarlow #2543 üzenetére
semennyire.
az egyik verzió, hogy ha van kéznél postgresql, akkor belerakod és azzal szétválogatod.a másik verzió, amit egyszerűbb az az, hogy csplit-tel szétdarabolod az xml fájlt annyi darabra, ahány user szekció van benne, a darabokból kiválogatod, ami kell, és utána összerakod újra.
tehát megoldod, hogy az user záró tag egyedül legyen külön sorban (sed-del két parancs), majd csplit-tel szétvágod a '</User>' delimiterrel.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz RedHarlow #2568 üzenetére
vagy temp fájl, vagy megoldod, hogy a riportoló szkript semmi mást ne írjon ki, csak ezt az adatot, és azt használod utána valahogy így:
tempfile=$(reportoloszkript.sh)
másik verzió: a tempfájl útvonalát a hívó szkriptben határozod meg, és átadod a riportolónak, és az azt használja.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
bambano
titán
válasz Fecogame #2579 üzenetére
a kérdés az, hogy így akarod megoldani a problémát vagy rendesen.
ha így, akkor nézd meg, hogy a bash hogy kezel tömböket.
ha rendesen, akkor kb. így néz ki:cat <<EOF
http prohardver
http ezmegaz
EOF | while read website; do curl ${website} | stb. ; done
az, hogy tesztbe teszed a kiértékelést, meg =1 meg hasonló bonyolítások, szintén felejtős. A grep rendesen adja vissza a kilépési kódját, tehát:
curl | grep && echo ok
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
"fogalmam sincs, mi a problémája.": például lehet az, hogy nem ugyanabból a gyökérből csinálod meg a fájlneveket, mint ahonnan a tar-t indítod.
csináld meg a tar file-t, mindegy, hogy jól vagy rosszul, majd utána listázd ki azokat a fájlokat a tarból, amiknek nem kellene benne lenni. majd nézd meg, hogy az exclude tömbben a fájlok ugyanúgy vannak-e és ugyanaz-e a könytáruk is.
ha nem boldogulsz, inkább rakd be egy temporális fájlba az excludálni valókat és -X -szel szedd ki.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
gyökérnek nevezhető az is, ahonnan a tar parancsot indítod.
ha azt írod, hogy tar cvf akarmi.tar /home/juliska, akkor a tar valószínűleg le fogja venni a kezdő /-t és a tarfájlba már home/juliska kezdettel kerülnek be a fájlok. ezért ha excludálod a /home/juliska/tmp-t, akkor arra nem illeszkedik a kizárás. szerintem ilyenkor a home/juliska/tmp-t kell excludálni.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
ez csak abban az esetben érvényes a tarfájl nevére ez nem érvényes, a betarolandó fájlok nevére érvényes.
bambano@dragon:~$ cd /
bambano@dragon:/$ tar cvf /tmp/test.tar /home
tar: A kezdő „/” eltávolítása a nevek elejéről
/home/[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen