Portál AbcLinuxu, 12. května 2025 08:19

Dotaz: konec cesty

geon avatar 12.9.2007 13:28 geon | skóre: 18 | blog: bavaria
konec cesty
Přečteno: 350×
Odpovědět | Admin
Asi 20 minut jsem se snažil, zkoušel jsem grep i sed, ale nějak to nejde.

Jak dostanu nejlépe konec cesty? Část za posledním lomítkem.
/var/log/samba --> samba
/var/samba/nástěnka ---> nástěnka
Děkuji moc.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.9.2007 13:32 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: konec cesty
Odpovědět | | Sbalit | Link | Blokovat | Admin

basename "cesta"

I am always ready to learn although I do not always like to be taught. (W. Churchill)
12.9.2007 15:54 ajikdpoe | skóre: 23 | blog: dvh
Rozbalit Rozbalit vše Re: konec cesty
Odpovědět | | Sbalit | Link | Blokovat | Admin
samozrejme basename, cesta tusim dirname, inak da sa to aj sedom takto:
# echo /var/log/samba | sed 's/\//\n/g' | tail -1
samba
12.9.2007 16:06 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: konec cesty
nebo rovnou
$ echo /var/log/samba | sed 's/.*\///'
samba
12.9.2007 16:52 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: konec cesty
Odpovědět | | Sbalit | Link | Blokovat | Admin
Prenositelne cez basename. Ale je to spustanie dalsieho procesu a ak sa to robi v cykle a casto, tak je to velmi pomale riesenie. V bashi: "${premenna##*/}"
If you hold a Unix shell up to your ear, you can you hear the C.
12.9.2007 19:37 Jiří J. | skóre: 34 | blog: Poutník | Brno
Rozbalit Rozbalit vše Re: konec cesty
basename ve skriptech také používám, pravda, musí se načíst, ale při opakovaném použití už se čte z cache, tudíž to až tak pomalé řešení není (až na systémy s vypnutou cache).
12.9.2007 20:00 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: konec cesty
Nejde o nacitanie z disku, ale o obrovsku pracu s vytvaranim a ukoncovanim procesu. Skus si spustit napr. 1000x grep nad jednym suborom alebo jeden grep nad 1000 subormi a zmeraj mu cas.
 $ time grep -q semo `for ((i=0; i<1000; i++)); do echo -n "/etc/passwd "; done`

real    0m0.041s
user    0m0.033s
sys     0m0.010s
versus
$ time for ((i=0; i<1000; i++)); do grep -q semo /etc/passwd; done

real    0m1.853s
user    0m0.623s
sys     0m1.223s
If you hold a Unix shell up to your ear, you can you hear the C.
geon avatar 12.9.2007 17:24 geon | skóre: 18 | blog: bavaria
Rozbalit Rozbalit vše Re: konec cesty
Odpovědět | | Sbalit | Link | Blokovat | Admin
díky všem.

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.