[megoldva] delimiterig való törlés - fejtörő :)

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.

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 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