Categories
Korn Shell / Bash Shell Programmierung

Sehr nützliche grep Funktionen

grep wird von Linuxx/Unix Administratoren zwar sehr oft genutzt, einige sehr mächtige Optionen werden aber zu Unrecht wenig genutzt oder sind den Administratoren nicht bekannt.

1. Zeilen vor und nach der Fundstelle des Suchbegriffs ausgeben.
grep bietet die äusserst nützliche Funktion, Zeilen vor und nach dem gefundenen Suchbegriff anzuzeigen.

Um die Funktionen der grep Optionen darzustellen, verwende ich als Beispiel ein IBM Skript mit folgendem Inhalt, das von grep durchsucht wird:

cat collector.sh

#!/bin/sh
binDir=`dirname ${0}`
. ${binDir}/setupCmdLine.sh
${WAS_HOME}/bin/collector.sh “$@”

Die Option -A zeigt n Zeilen nach der Fundstelle an.

grep -A 1 setup collector.sh

. ${binDir}/setupCmdLine.sh
${WAS_HOME}/bin/collector.sh “$@”

Die Option -B zeigt n Zeilen vor der Fundstelle an.

grep -B 1 setup collector.sh

binDir=`dirname ${0}`
. ${binDir}/setupCmdLine.sh

Die Option -C zeigt n Zeilen vor und nach der Fundstelle an.

grep -C 1 setup collector.sh

binDir=`dirname ${0}`
. ${binDir}/setupCmdLine.sh

2. Farbliches Hervorheben des Suchbegriffs in den Fundstellen
grep kann in einem Terminal den gefundenen Suchbegriff farblich hervorheben. Dazu setzt man die Umgebungsvariable GREP_OPTIONS wie folgt:

export GREP_OPTIONS='--color=auto'

–color=always

wird oft in Blogs erwähnt, aber grep soll die Farben ja nur in interaktiven Terminals hervorheben. Daher empfehle ich die Option --color=auto. Am besten setzt man diese Umgebungsvariable in den Login Dateien (z.B. .bashrc).

3. Nur den Dateinamen mit der Fundstelle bei Suchen in mehreren Dateien ausgeben
grep ermöglicht Suchen in mehreren Dateien und auch rekursiv (Option -r) in Unterverzeichnissen. Wenn der Suchbegriff in vielen Dateien an mehreren Positionen enthalten ist, wird das Ergebnis
schnell unübersichtlich. Die grep Option -l bietet sich in diesen Fällen an. Sie gibt nicht die Zeile mit der Fundstelle aus, sonder zeigt nur den Dateinamen an.

grep -rl suchstring *

Categories
Oracle Oracle Datenbank

Mit SQLPLUS direkt HTML Dateien erzeugen

Seit Oracle 8i gibt es eine elegante Methode mit SQL*Plus direkt HTML Code zu erzeugen. Dazu wird die HTML Ausgabe mit

SET MARKUP HTML ON

aktiviert. Deaktiviert wird die HTML Ausgabe mit:

SET MARKUP HTML OFF SPOOL OFF

SQL Statement
Dieses Beispiel gibt das SQL Statement show user als HTML Datei /tmp/ts_size.htm aus.

SET MARKUP HTML ON SPOOL ON –
HEAD “<title>SQL*Plus Report</title> –
<STYLE TYPE=’TEXT/CSS’> –
<!–BODY {background: ffffc6} –> –
</STYLE>”
BODY “TEXT=’#FF00Ff'” –
TABLE “WIDTH=’90%’ BORDER=’5′”
 
SET ECHO OFF
SPOOL /tmp/ts_size.htm
 
show user;
 
SPOOL OFF
SET MARKUP HTML OFF
SET ECHO ON

Details verrät die Oracle Dokumentation: Generating HTML Reports from SQL*Plus

Categories
Oracle Oracle Datenbank Shell Programmierung

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;