Re: im shellscript ls auswerten??? (OT)

From: clemensF <ino-waiting(at)gmx.net>
Date: 24 Apr 2002 00:54:10 +0200

> Philon:

> nun hab ich schon das mit der schleife hinbekommen. Nur Dateinamen abziehen
> hab ich keine Ahnung...

        #!/bin/sh
        for i in names*
        do
                j="${i%%-mus?er*}"
                echo "${i} => ${j}"
        done

geht mit modernen bourne-shells ohne exec's. gegeben eine liste von files:

        a-muster-datum-1999
        a-muster
        b-musxer-dartüm-2222
        b-musxer

sollte das rausschmeissen (untested!!):

        a-muster-datum-1999 a
        a-muster a
        b-musxer-dartüm-2222 b
        b-musxer b

cave: wenn das abzuschneidende muster wiederholungen enthaelt
(c-musterX-musterY), und du aber nur das allerletzte willst, dann nimm
lieber nur ein `%', das ist non-greedy und nimmt das kuerzeste muster.

wenn du die schleife in ein `{' oben und ein `}' unten einpackst, kannste
die dubletten rauskriegen:

        #!/bin/sh
        {
        for i in [ab]-*
        do
                j="${i%%-mus?er*}"
                echo "${i} => ${j}"
        done
        } | uniq

(das tolle eben war das blockkopieren mit vile! damit musste ich die
zweite columne "a a b b" nicht selber hinschreiben :)

-- 
clemens fischer
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 24 Apr 2002 - 00:55:52 CEST

search this site