shell levágás

Üdv!
Shell scriptben hogyan tudnám azt elérni, hogy mindent ilyen formában tudjak kiírni:

abc/def/xyz

és ne így:

./abc/def/xyz

már próbálkoztam sed-el, awk-al, cut-al, egyik sem jött be, teljesen tanácstalan vagyok, minidg csak a végéből sikerült levágnom a ./ -t soha.

Előre is köszönöm a tanácsokat

Hozzászólások


$ a="./abc/def/xyz"
$ echo $a
./abc/def/xyz

$ echo ${a#./}
abc/def/xyz

$ echo $a | sed "s#^\./##"
abc/def/xyz

$ echo $a | cut -d/ -f2-
abc/def/xyz

$ echo $a | awk '{print substr($0,3);}'
abc/def/xyz

Pár évvel ezelött nagyon utáltam a következő kérdést:

minek ez neked?

gondolom file neveket kezelsz.

FNAME=./alma
cd /tmp
touch $FNAME
echo $FNAME
readlink -f $FNAME
echo $(pwd)/$FNAME

ls -i $FNAME
ls -i $(pwd)/$FNAME

A legtobb shell parancsot nem zavarja kozeputt a /./ sem a ./ az elejen.
Ha egy filelistat akarsz csinalni, akkor a readlink -f gyakran hatasos.

Az ilyen kérdésere anno jó ha olyan választ kaptam, hogy man cut (awk, bash, sed, kb. bármelyik jó):

fisher@zsebi:~$ a="./abc/def/xyz"
fisher@zsebi:~$ echo $a | cut -c3-
abc/def/xyz

Csak hogy legyen még egy, alig más megoldás.

Najó, két napja azon gondolkozom, hogy hogyan lehetne csigát ("\_@_) vagy valami hasonlót felhasználni akár sed-ben vagy hasonló regexpes (vagy bármilyen) mókában az adott - súlyos - probléma megoldásában... egyelőre nem állok jól :(

Pedig akkor még érdekes is lehetne a feladata :D

Update: most nézem, hogy nem két napja, csak reggel óta... kicsit sűrűek a napjaim, ehe.