Shell Scripting
Shellp Programmierung, Pattern Matching, Kornshell, Regular Expressions
-
PowerShell Module
Sind bestimmte Module auf dem Windows PC vorhanden? Eine Anzeige der installierten Module liefert der Befehl Get-Module. PS > Get-Module -ListAvailable ModuleType Name ExportedCommands ---------- ---- ---------------- Manifest ADRMS {} Manifest AppLocker {} Manifest BestPractices {} Manifest BitsTransfer {} Manifest PSDiagnostics {} Manifest ServerManager {} Manifest TroubleshootingPack {} PS > Get-Module Hyper-V Keine Ausgabe, wie beim letzten Kommando, bedeutet, dass dieses Modul nicht installiert ist oder man sich vertippt hat.
-
Powershell Version
Oft ist es relevant zu wissen, welche PowerShell Version installiert ist. Dies kann durch Ausgabe der Variablen $PSVersionTable.PSVersion erfolgen. In PowerShell 1.0 gibt es diese Variable noch nicht. PS > $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 2 0 -1 -1 In diesem Fall liegt Version 2.0 vor.
-
awk – Ändern der Großschreibung in Kleinbuchstaben
Die Funktion tolower in einem awk Skript ändert Grossbuchstaben in Kleinbuchstaben: awk '{ print tolower($0) }' Die Funktion toupper in einem awk Skript ändert Grossbuchstaben in Kleinbuchstaben: awk '{ print toupper($0) }' Beispiel für AWK Funktion tolower In diesem Beispiel soll das erste Feld in Kleinbuchstaben ausgegeben werden. echo ABCDEF GHIJK | awk '{ print tolower($1), $2 }' abcdef GHIJK Beispiel für AWK Funktion toupper In diesem Beispiel soll das erste Feld in Kleinbuchstaben ausgegeben werden. echo abcdef ghijk | awk '{ print toupper($1), $2 }' ABCDEF ghijk
-
Leerzeilen aus einer ASCII Datei entfernen
Um bei einer Dateianzeige die leeren Zeilen zu entfernen, gibt es verschiedene Möglichkeiten. Ich stelle hier 2 Methoden vor. Variante 1 verwendet den Unix Befehl grep grep -v ^$ Variante 2 verwender das Kommando awk. awk ' NF>0 ' Beispiel für grep Das verwendete Pattern setzt sich aus einem ^ für den Zeilenanfang und einem $ für das Zeilenende zusammen. Leerzeilen setzen sich ja, bei genauer Betrachtung, aus einem Zeilenanfang sofort gefolgt von einem Zeilenende zusammen. echo "ABCDEF \n\n GHIJK \n\n\nXYZ" | grep -v ^$ ABCDEF GHIJK XYZ Beispiel für awk Beim awk wird die interne Variable NF verwendet. NF enth%auml;lt die Anzahl der Felder der aktuellen Zeile. Leerzeilen haben…
-
SQL*Plus Variablen definieren und verwenden
Um SQL Statements dynamischer zu gestalten, sind oft Abfragen zu generieren, deren Wert von einer Variablen abhängen. In SQL werden Variablen über das Kommando DEFINE definiert und mit &VARIABLE abgefragt. SQL Statements: SET VERIFY OFF define col=TABLESPACE_NAME select &col from dba_tablespaces;
-
Zeichenketten in mehreren Dateien und Verzeichnissen suchen
Unter Unix bietet grep eine einfache Lösung um Zeichenketten in Dateien zu finden. Möchte man in allen Dateien eines Verzeichnisses und den Unterverzeichnissen eine bestimmte Zeichenkette (z.B BLABLA) suchen, so reicht der Befehl grep BLABLA * nicht, da keine Unterverzeichnisse durchsucht werden. Eine Alternative ist die Kombination aus den Befehlen: find, xargs und grep. find . -type file | xargs grep -i BLABLA find . -type file -print | xargs grep -i BLABLA egrep ist eine weitere mächtige Alternative. Mit der Option -R ist es in der Lage rekursiv Unterverzeichnisse zu durchsuchen: egrep -R BLABLA * Das funktioniert auch Super in der Windows bash! Allerdings kann man grep nicht auf…