[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

/bin/sh: prüfen ob String1 "Wort" aus String2 enthält



Hallo,

ich will in einem Shellskript prüfen, welche "Worte" aus einem String1 in
einem anderen String2 enthalten sind und die nicht enthaltenen aus
String1 entfernen.
Konkret handelt es sich bei String2 um eine Liste installierter Pakete,
die mit
    INSTALLED_PKGS="`apt-mark showmanual` `apt-mark showauto`"
erstellt wird, bei String1 um eine Liste der Pakete, die ein
    apt-get dist-upgrade
installieren würde. Pakete die nicht bereits installiert sind, sollen
daraus entfernt werden.
Mit meiner (eng begrenzten) Shell-Erfahrung (und der Suchmaschine :) habe
ich bis jetzt folgendes zustande gebracht (wobei PKGNAMES String1 ist):

    PKGS=""
    for p in $PKGNAMES; do
        case $INSTALLED_PKGS in
            *$p*)
                PKGS="$PKGS $p"
            ;;
        esac
    done
    PKGNAMES="$PKGS"

Das *scheint* auch zu funktionieren, mit meinen wie erwähnt begrenzten
Shellkenntnissen bin ich mir jetzt aber nicht wirklich sicher, ob ich
dabei nicht etwas übersehe.
Vielleicht kann einer der Shell-Profis hier weiter helfen?

Gruss

Michael

.-.. .. ...- .   .-.. --- -. --.   .- -. -..   .--. .-. --- ... .--. . .-.

Witch!  Witch!  They'll burn ya!
		-- Hag, "Tomorrow is Yesterday", stardate unknown


Reply to: