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