[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fragen zu Shell-Skripten



Am 03/05/2012 07:38 PM, schrieb Peter Schütt:

> ein wenig OT, aber das Fachwissen dafür ist hier sicherlich vorhanden:

Ich versuche das mal zu beantworten.
Man kann das auch alles mit Shell-(bash)-Bordmitteln abwickeln.

> 1. 
> Gegeben ist eine Datei mysource mit folgendem Header
> %title: Ein beliebiger Titel
> %date: 2001-12-23
> Irgendwelcher Text
> 
> Ich möchte nun in einem Skript den Titel und das Datum weiter verarbeiten 
> können, also in der Weise:
> 
> TITLE=`MagicScriptForTitle.sh mysource`
> DATE=`MagicScriptForDate.sh mysource`
> 
> Wenn eine der Header-Zeilen fehlen sollte, dann muß die Variable leer sein.

Es würde sich anbieten, das als Funktion zu schreiben. Und diese würde
ich dann noch parametrisieren, damit man nix doppelt coden muss. Also so
etwa:

get_header()
{
  local type=$1;shift;
  local file=$1;shift;
  cat ${file} | while read line
  do
    if [[ $line =~ "%${type}:" ]]
      then echo ${line/%${type}: /}
    fi
  done
}

Aufruf wäre dann mit

TITLE=$(get_header title mysource)
DATE=$(get_header date mysource)


> 2. 
> 
> Gegeben ist die Variable
> 
> MYVAR=Ein_Toter_am_Turm
> 
> Wie überführe ich sie nach
> 
> 'Ein Toter am Turm' (also Charakter-Ersetzung) ?

echo ${MYVAR//_/ }
oder
MY_NEW_VAR=${MYVAR//_/ }

> 3. 
> 
> Gegeben ist ein kompletter Pfad:
> 
> /home/ich/mydir/myfile.dat
> 
> Mittels "basename" komme ich an den einfachen Dateinamen.
> Wie komme ich an das Verzeichnis?

dirname

aber das kam ja schon ... :-)


> Danke für alle Hinweise und Tips.

Ich hoffe, das hilft.

jm2c René


Reply to: