a string:
./valami/ize/cucc.txt
a kívánt végeredmény:
./valami/ize/
Hogyan lehetne levágni a végét, ha a "./valami/ize/" mappa útvonala tetszőleges mélységű lehet?
Pl.:
$ echo "./valami/ize/cucc.txt" | rev
txt.ccuc/ezi/imalav/.
és akkor a rev után még valami, amivel levágjuk az első "/"-jel előtti filenevet [ami különböző név lehet, lényeg, hogy az elválasztó mindenképpen a "/"-jel], utána újra rev.
Szóval a
cut -d "/" -f 1
"ellentettje kéne", miszerint ne az első "oszlopot" hagyja meg, hanem az összes maradék részt.
- 766 megtekintés
Hozzászólások
man dirname:
"Print NAME with its trailing /component removed; if NAME contains no /’s, output ‘.’ (meaning the current directory)."
# dirname ./valami/ize/cucc.txt
./valami/ize
- A hozzászóláshoz be kell jelentkezni
köszi, király :)
- A hozzászóláshoz be kell jelentkezni
A bash belső megoldását használnám, hogy ne kelljen külön processz:
f="./valami/ize/cucc.txt"
echo ${f%/*} # eleje
echo ${f##*/} # vége
(stream esetén nem ideális, oda inkább sed)
szaszi
- A hozzászóláshoz be kell jelentkezni
Ez csak akkor jo, ha a nevben van directory komponens is (pl.
./valami/ize/cucc.txt
). Ha csak egy filenevbol all (
cucc.txt
), akkor megszivtad.
- A hozzászóláshoz be kell jelentkezni