Pfad und Namen aus einer Datei holen und dann kopieren

Datum: 2004-02-14
Quelle: suse-linux

Worum ging es?

Aus einer Datei mit einem ziemlich eigenwilligen Aufbau (siehe Code-Abschnitt) sollen der Pfad und der Dateiname ermittelt und die so definierte Datei kopiert werden.

Code
echo '
..== Name         : TEST
..==
..== Pfad         : owfo' | \
`awk ' $2=="Pfad" { path=$NF }
       $2=="Name" { name=$NF }
       END { printf "cp %s/%s %s.BAK\n",path,name,name } '`
Beschreibung

Zum Parsen von ungewöhnlichen Dateiformaten eignet sich oft der awk. In diesem Fall baut er auch gleich das Kommando zum Kopieren der Datei auf. Die Backticks rund um den code bewirken eine Kommandosubstitution, so dass die von ihm erzeugten Kommandos nicht ausgegeben, sondern sofort ausgeführt werden.