INI-FIle Parser als Einzeiler in Bash

Viele Programme speichern ihre Konfigurationsdaten immer noch im alten INI-Format ab. Das Format ist einfach: es gibt Sektionen, Schlüssel, Werte und Kommentare. Sektionen dürfen nicht ineinander geschachtelt werden, die Schlüssel innerhalb einer Sektion sollen eindeutig sein. Das Format ist zeilenbasiert, die Leerzeichen am Anfang und am Ende eines Tokens werden ignoriert.

[Section]
; Comment
Key = Value

Dieser Einzeiler ist ein Bash-Script zum Lesen der Werte aus solchen INI-Dateien. Das Script wird aufgerufen mit dem Dateinamen, dem Sektionsnamen und mit dem Schlüssel. Der Wert wird auf der Standardausgabe ausgegeben.
cat $INIFILE | sed -n /^\[$SECTION\]/,/^\[.*\]/p | grep "^[:space:]*$ITEM[:space:]*=" | sed s/.*=[:space:]*//
Zuerst wird der Inhalt entsprechender Sektion extrahiert. Danach wird die Zeile mit dem Schlüssel=Wert Paar für den gegebenen Schlüssel gefunden und davon der Wert genommen.

Viel Spaß damit, und denkt an XML als eine bessere Alternative für Konfigurationsdateien.
Hier ist das komplette Source-Listing für INI-Reader:

#!/bin/bash
#Valentin Heinitz, www.heinitz-it.de, 2008-11-13
#Reader for MS Windows 3.1 Ini-files
#Usage: inireader.sh

# e.g.: inireader.sh win.ini ERRORS DISABLE
# would return value "no" from the section of win.ini
#[ERRORS]
#DISABLE=no
INIFILE=$1
SECTION=$2
ITEM=$3
cat $INIFILE | sed -n /^\[$SECTION\]/,/^\[.*\]/p | grep "^[:space:]*$ITEM[:space:]*=" | sed s/.*=[:space:]*//