Hallo stickybit
Hier eine Möglichkeit um Bankdaten an die persönliche Bank anzupassen.
Als erstes die Datei banks.data aus dem Verzeichnis /usr/share/aqbanking/bankinfo/de/ in ein neues Verzeichnis koppieren.
Nun die Änderungen zu der benötigten Bank in die Datei banks.data einfügen. (z.B. Neue Bank; neue Services; ...)
Zur schreibweise der URL zum Bankserver kann dieser vorher über die Konfiguration eingetragen werden (QBankManager - Neues Konto). Quelle für den Eintrag zum Server bei der Bank ist dann:
/home/user/.aqbanking/settings/users/uid*.conf
- Zeile: "char server=" xxxx
Alternativ ist der Link anhand der Informationen in dem awk-Programm entsprechend zu konvertieren.
Das folgende Progamm erstellt anhand der Daten in der Datei bank.data die neuen idx Dateien.
Den folgenden Text (awk Programmroutine) in eine Datei kopieren.
Code
awk '
BEGIN {
zaehler += 0
DSStart = zaehler
OFS = "\t"
}
{
if (length ($0) == 0)
DSStart = zaehler +1
zaehler = zaehler + length ($0) +1
prueftext = substr ($0 , 1 , 6)
if (substr ($0 , 1 , 6) == "bankId")
{
BLZ = substr ($0,9,8)
zwischen = sprintf("%x \n" , DSStart)
Wert = "00000000" zwischen
Wert = substr (Wert,(length(Wert)-9))
print BLZ , substr(Wert,1,8)
}
}
' banks.data > blz.idx
awk '
BEGIN {
zaehler += 0
DSStart = zaehler
OFS = "\t"
}
{
if (length ($0) == 0)
DSStart = zaehler + 1
zaehler += length ($0) +1
if (substr ($0 , 1 , 4) == "bic=")
{
bic = substr ($0 , 6 , 11)
zwischen = sprintf("%x \n" , DSStart)
Wert = "00000000" zwischen
Wert = substr (Wert,(length(Wert)-9))
print bic , substr(Wert,1,8)
}
}
' banks.data > bic.idx
awk '
BEGIN {
zaehler += 0
DSStart = zaehler
OFS = "\t"
Wert = "leer"
}
{
if (length ($0) == 0)
DSStart = zaehler +1
zaehler += length ($0) +1
if (substr ($0 , 1 , 8) == "bankName")
{
Name = substr ($0 , 11 , length ($0)-11)
zwischen = sprintf("%x \n" , DSStart)
Wert1 = "00000000" zwischen
Wert1 = substr (Wert1,(length(Wert1)-9))
}
if (substr ($0 , 1 , 8) == "location")
{
Ort = substr ($0 , 11 , length ($0)-11)
zwischen = sprintf("%x \n" , DSStart)
Wert = "00000000" zwischen
Wert = substr (Wert,(length(Wert)-9))
}
if (Wert == Wert1)
{
print Name, Ort , substr(Wert,1,8)
Wert1 = ""
}
}
' banks.data > namloc.idx-neu
awk '
{
n += 0
gsub(/%2D/ , "-") # Bindestrich
gsub(/%2F/ , "/") # Schräger
gsub(/%28/ , "\(") # offene Klammer
gsub(/%29/ , "\)") # geschlossene Klammer
gsub(/%C3%BC/ , "ü") # ü
gsub(/%C3%B6/ , "ö") # ö
gsub(/%C3%A4/ , "ä") # ä
gsub(/%C3%9F/ , "ß") # ß
gsub(/%C3%84/ , "Ä") # Ä
gsub(/%C3%96/ , "Ö") # Ö
gsub(/%C3%9C/ , "Ü") # Ü
gsub(/%2B/ , "+") # +
n = index ($0, "%26")
if (n > 0)
{
Kette = substr($0,1,n-1) "&" substr ($0, n+3)
print Kette
}
else
print ($0)
}
END{
comando = "rm namloc.idx-neu"
system(comando)
}
' namloc.idx-neu > namloc.idx
Diese Datei auf ausführbar setzen (chmod +x dateiname) und ausführen (./dateiname).
Die Warnmeldungen ignorieren.
Mit dem Befehl "cmp dateiname-1 dateiname-2" lassen sich nun die Ergebnisse zwischen den idx Dateien vergleichen.
Ein Testlauf mit der originalen banks.data Datei darf keine Meldung ergeben.
Ansonsten wird in der Ausgabe die erste Zeile mit Unterschiedlichen Inhalten ausgegeben.
Nun die neuen idx-Dateien mit root Berechtigung gegen die ursprünglichen Daten austauschen.
Fertig!
Gruß
Probirskie