Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Shell Script in Datei suchen.

Frage Entwicklung Batch & Shell

Mitglied: johannes91

johannes91 (Level 1) - Jetzt verbinden

28.05.2010 um 10:51 Uhr, 4941 Aufrufe, 3 Kommentare

Hallo Admins,

ich muss für die Arbeit ein Shell Script schreiben, welches einen anderen Befehl auswertet.

Der Befehl gibt folgendes aus:

Run | KHD | SHD | RunHost | IPv4 | IPv6 | ILO | adm-PW | Server Name
-----+-------+----------+------------+-----------------+-----------------------+-----------------+----------+-----------------------
| aaa | aaa-a | Server 1 | 127.0.0.1 | | | | mail.domain.de
| aab | aab-b | Server 2 | 127.0.0.1 | | | | Server 2
| aac | aac-c | Server 1 | 127.0.0.1 | | | | web1.domain.de
| abd | aad-d | Server 1 | 127.0.0.1 | | | | Server 1

Hintergrund ist folgender, dass ich wissen will, welcher Server dediziert ist (Hardware) und welcher virtuell ist.

Wenn also RunHost und Servername gleich sind, dann ist der Server dediziert.
Wenn nicht dann virtuell.

Wie bekomme ich ein Script, welches mir die Ausgabe mit ca. 5700 virtuellen/dedizierten Servern filtert.

Der zweite Schritt wäre dann, wenn RunHost = Server Name gleich ist, das Ergebnis in eine Variable zu schreiben.

Meine Frage: Wie bekommt man das hin, dass ich gezielt nur Die Spalte RunHost und Server Name greppen kann?
Und wie kann ich das am besten lösen.

Bin leider ein Shell Einsteiger. Also seit mir bitte nicht böse.

Danke für eure Hilfe.

Johannes91
Mitglied: LotPings
28.05.2010 um 12:04 Uhr
Hallo Johannes,

das sollte, falls die Ausgabe in einer Datei vorliegt, ein Batch Einzeiler können:
01.
for /f "skip=2 Tokens=1-9 Delims=|" %A in (test.txt) Do if "%C" EQU "%H " (Echo dediziert %C %H) Else (Echo virtuell %C %H)
Deinen Dateinamen müsstest du an statt test.txt einsetzen.
Zu beachten ist das die letzte Spalte keine anhängedes Leerzeichen hat wie Spalte 3, deshalb muss es beim Vergleich angehängt werden.
Skip=2 überspringt den Header.

Bei mir kommt mit deinen Testdaten dies heraus,
-virtuell  Server 1   mail.domain.de 
dediziert  Server 2   Server 2 
-virtuell  Server 1   web1.domain.de 
dediziert  Server 1   Server 1
Gruß
LotPings
Bitte warten ..
Mitglied: Korrn
29.05.2010 um 11:29 Uhr
Hi,

falls Du öfters mal was skripten musst, dann kann ich Dir den "Advanced BASH scripting Guide" von tldp.org empfehlen.

Zu Deinem Problem:
Grep wird Dich nicht unbedingt weiter bringen, ich würed da eher mit einer FOR-Schleife arbeiten:

01.
while read LINE 
02.
do 
03.
   $LINE         # VARIABLE, in der der Inhalt der jeweiligen Zeile steht 
04.
done < $EINGABEDATEI
Weiter kannst Du Dir mit dem CUT-Befehl dann die eintsprechenden Spalten rausholen (Tip: Dein Delimiter ist das Pipe-Symbol), und Diese dann vergleichen.

Mein Ansatz kommt auch ohne Skript, als Einzeiler aus:
01.
while IFS='|' read run khd shd runhost ipv4 ipv6 ilo admpw servername ; do if [ "$runhost" == "$servername" ]; then echo "$servername"; fi ; done < $DATEINAME
Tolle Wurst, funktioniert aber leider nur, wenn man vorher alle Leerzeichen aus der Eingabe-Datei entfernt hat ('sed -i 's/ //g' $DATEINAME), damit ist das Ergebnis aber leider etwas verfälscht.
Bitte warten ..
Mitglied: LotPings
29.05.2010 um 22:35 Uhr
Wenn es denn die bash sein soll,

geht es auch mit sed und awk (Dateiname test.txt):
01.
sed -n  's/ *| */|/pg' test.txt|awk -F\| '{if (NR >1) if ($4 == $9) {print "dediziert "$4,$9} else print "-virtuell "$4,$9}'
Ausgabe:
-virtuell Server 1 mail.domain.de 
dediziert Server 2 Server 2 
-virtuell Server 1 web1.domain.de 
dediziert Server 1 Server 1
Damit die sed und gawk Kombination unter Win32 console läuft, müsste sie so aussehen:
01.
sed -n "s/ *| */|/pg" test.txt|gawk -F^| "{if (NR >1) if ($4 == $9) {print \"dediziert\",$4,$9} else print \"-virtuell\",$4,$9}"
Gruß
LotPings
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Shell Script nach bestimmten Zeilen in einer Datei suchen
gelöst Frage von windelterroristBatch & Shell4 Kommentare

Hallo, Ich würde gerne wissen, wie ich im Shell Script nach einer Zeile in einer bestimmten Datei (z.B. test01) ...

Batch & Shell
Power Shell Script zu Bild Suche
gelöst Frage von akoch85Batch & Shell10 Kommentare

Hallo liebe Mitglieder, ich brauche dringend eure Hilfe. Problemstellung: 1.Bilder anhand des Namens z.B. "B1876GH.jpg" aus einem Ordner herausziehen ...

Linux
Shell Script, Script ausführen in einem Zeitfenster
Frage von webstorLinux2 Kommentare

Hi, ich bin wieder mal lästig. ;-) ich habe ein Script das in einem Zeitraumen von als Bsp in ...

Batch & Shell
Bash Shell Script lernen
gelöst Frage von RobJoe25Batch & Shell4 Kommentare

Hallo Administrator-Community, ich habe eine Frage. Kennt jemand gute Homapage´s (am besten auf Deutsch) oder gute Bücher, wie ich ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 6 StundenLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 2 TagenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...