Am Donnerstag, 24. März 2005 21:31 schrieb Andreas Winkelmann:
Am Donnerstag, 24. März 2005 20:56 schrieb Al Bogner:
Ich möchte ein Script machen, dass die unterschiedlichen Programme von 2 Rechnern ausgibt.
Dazu erstellt man also mit rpm -qa eine Datei
Ein Ausschniit wäre zB
gnome-media-2.8.0-3.FC3.1 rhgb-0.16.2-1.FC3 openssh-askpass-3.9p1-8.0.1 NetworkManager-gnome-0.3.4-1.1.0.fc3 exiftags-0.99.1-2.1.fc3.rf libdvdcss-1.2.8-4.1.fc3.rf xvidcore-1.0.3-1.1.fc3.rf perl-Net-DNS-0.48-1.1.fc3.rfnmap nmap-3.81-1.1.fc3.rf libkipi-0.1-2
Ein 2 Datei wäre. zB:
gnome-media-2.8.0-3.FC3.1 rhgb-0.16.2-1.FC3 openssh-askpass-3.9p1-8.0.1 NetworkManager-gnome-0.3.4-1.1.0.fc3 libdvdcss-1.2.8-4.1.fc3.rf xvidcore-1.0.3-1.1.fc3.rf perl-Net-DNS-0.48-1.1.fc3.rf libkipi-0.1-2
Der Unterschied wäre also: exiftags-0.99.1-2.1.fc3.rf nmap-3.81-1.1.fc3.rf
Gesucht ist: exiftags nmap
Wie kürze ich nun gnome-media-2.8.0-3.FC3.1 auf gnome-media?
Man kann ja nicht einfach "-" als Trenner verwenden. Manchmal ist der Programmname nach dem 1. "-" definiert, manchmal sind es aber mehrere "-". Eventuell könnte man nach dem 1. "-" mit folgender Zahl suchen?
hosta $ rpm -qa --queryformat '%{NAME}\n' > datei1.txt hostb $ rpm -qa --queryformat '%{NAME}\n' > datei2.txt
Danke für die Erinnerung an die Option queryformat. Ich verwende die sogar in anderen Scripts.
Die 2. Frage ist wie man am einfachsten die "Diff-Kennzeichnungen" wegbekommt, also ">", Zeilennummern, etc., sodass nur eine Liste mit den unterschiedlichen Programmen übrigbleibt und zwar alles in 1 Zeile, sodass man das dann direkt rpm, apt oder yum übergeben kann.
$ cat datei1.txt datei2.txt | sort | uniq -u | tr '\n' ' '
Das ist aber nicht ganz so das, was ich will. Unabhängig davon verstehe ich nicht, warum du nicht sort -u verwendest. Ich möchte nicht alle rpms von Host A und B, sondern die Differenz. Die Anwendung ist folgende: Host A hat verschiedenste rpms. Host B wurde neu installiert und enthält eventuell Pakete, die A nicht hat, aber Host B soll auf jeden Fall alle Pakete von Host A haben. Daher meine Idee mit diff, aber das muß auch nachbearbeitet werden. Al