Portál AbcLinuxu, 12. května 2025 05:34

Dotaz: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?

7.4.2006 11:16 dolby
Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
Přečteno: 148×
Odpovědět | Admin
Píši script v bashi který si vyptá cestu, kam uložit výstupní soubor. V proměnné pak je:
/cesta/cesta/soubor.txt
No a já potřebuji otestovat (-w) možnost zápisu. V tomto případě je vždy výsledek NE, protože "soubor.txt" dosud neexistuje. Proto bych potřeboval tuto část odfiltrovat, aby zbylo:
/cesta/cesta
,kde bych mohl možnost zápisu zjistit. Tedy od zadu * až po /. (Pokud by někdo použil / v názvu souboru, to už je jeho problém). Děkuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.4.2006 11:23 miro
Rozbalit Rozbalit vše Re: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
'/' v nazve suboru nemoze byt.

http://www.google.sk/search?hl=sk&q=bash+substring&btnG=H%C4%BEada%C5%A5+v+Google&meta=
7.4.2006 11:36 razor | skóre: 33
Rozbalit Rozbalit vše Re: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
dirname ?
Josef Kufner avatar 7.4.2006 11:55 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
... a pro ziskani nazvu souboru bez adresare je basename
Hello world ! Segmentation fault (core dumped)
7.4.2006 12:19 dolby
Rozbalit Rozbalit vše Re: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
Děkuji moc, funguje. Kdyby to někoho zajímalo:
vystup=~/Documents"/soubor.txt"
echo $vystup   # /home/xxx/Documents/soubor.txt
v=`dirname $vystup`
echo $v    # /home/xxx/Documents
7.4.2006 12:36 dolby
Rozbalit Rozbalit vše Re: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
A přímo v testu to jde taky:
[ ! -w `dirname $vystup`  ] && "Nemáte práva k zápisu do vybrané složky."
7.4.2006 12:40 dolby
Rozbalit Rozbalit vše Re: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
Teda
[ ! -w `dirname $vystup`  ] && echo "Nemáte práva k zápisu do vybrané složky."
7.4.2006 12:44 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Taky to jde v bashi přímo (bez volání dalších programů) :
# Soubor="/cesta/cesta/soubor.txt"
# Cesta="${Soubor%/*}"
# echo "$Soubor"
/cesta/cesta/soubor.txt
# echo "$Cesta"
/cesta/cesta
7.4.2006 16:53 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Jak odfiltrovat z proměnné název souboru a ponechat jen cestu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Není jednodušší ten prostě soubor prostě vytvořit, s tím že to případně selže (a pak nemá právo)?

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.