regexp kérdés: utolsó per jel utáni minta kinyerése

Sziasztok,
Van egy sztring ami mindig az utolsó per ("/") jel után szerepel, amit ki szeretnék nyerni. Szenvedek vele már egy ideje, de nem találtam a megoldást. Tud vki segiteni?

Pl.

input --->
/egy/ketto/harom/negy/hosztneve

output --->
hosztneve

Tehát tetszőleges hosszúságú vagy mélységű könyvtárstruktúra végén szerepel egy hosztnév, amiből is csak a hosztnevet szeretném kinyerni. Ez mindig 9 karakter hosszú. Próbáltam:


$ input="/egy/ketto/harom/negy/hosztneve"
$ echo $input | sed -e "s/.........$//"
/egy/ketto/harom/negy/

Ilyenkor azonban a hosztnev eltűnik és marad a többi. Nekem pont az ellenkezője kellene.

Előre is köszi minden segitséget.
qmi

Hozzászólások

Lehet szívni sed-el is, de a basename parancs pont erre jó
basename /egy/ketto/harom/negy/hosztneve
kimenete a "hosztneve"


sed 's,^.*/\(.*\)$,\1,'
vagy
sed 's,^.*/,,'

awk -F/ '{print $NF}'

példa:


input="/egy/ketto/harom/negy/hosztneve"
echo $input | awk -F/ '{print $NF}'

Ahh..ez jó , hogy a basename-t igy is lehet használni. Azthittem, hogy csak a fájlrendszeren valójában létező fájloknál megy, de nem:


$ s="/egy/ketto/harom/negy/hosztneve"
$ basename $s
hosztneve
$

A sed, awk, grep példa is nagyon jó. Köszi mindenkinek.

--
qmi - Linux/FreeBSD SysAdm
www.miklos.info