From ef70318e30a45923981c60d8d0e1d5ff3056a58d Mon Sep 17 00:00:00 2001 From: qbi Date: Mon, 5 Feb 2024 18:28:42 +0100 Subject: [PATCH] Je ein ';' wird durch einen '\' ersetzt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neben den Backslashes am Zeilenende gab es Backslashes innerhalb des Textes. Beispiel: - Datum: 05.\,02.\,2024 - Straße: Gitstr.\,42 Mit diesen Backslashes kam die Ersetzung nicht gut zurecht. Daher habe ich das so geändert, dass jedes Semikolon (';') durch einen Backslash ersetzt wird. Im Datum und Straßen muss nun auch ein Semikolon stehen. Damit klappt die Ersetzung besser. --- rechnung.ini | 8 ++++---- rechnung.sh | 12 +++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/rechnung.ini b/rechnung.ini index 3e51680..686e959 100644 --- a/rechnung.ini +++ b/rechnung.ini @@ -1,11 +1,11 @@ # file: rechnung.ini # -# Bei adresse1 muss am Ende ein Semikolon (;) stehen. Dies sorgt dafür, dass im +# Bei adresse1 müssen an jedem Zeilenumbruch zwei Semikola (;;;;) stehen. Dies sorgt dafür, dass im # LaTeX-Code dies durch zwei Backslashes ersetzt wird. [start] kunde=Firma A -adresse= Strasse A; 012345 Stadt A; +adresse= Strasse A;; 012345 Stadt A;; anrede=Sehr geehrte Damen und Herren, einleitung=anbei die Rechnung anzahl=1 @@ -17,7 +17,7 @@ lfdnr=1 [start] kunde=Firma B -adresse=Personalabteilung; Frau B; Strasse B; 01234 Stadt B; +adresse=Personalabteilung;; Frau B;; Strasse B;; 01234 Stadt B;; anrede=Sehr geehrte Frau B, einleitung=Wie in Vertrag 08/15 vereibart berechne ich anzahl=11 @@ -29,7 +29,7 @@ lfdnr=1 [start] kunde=Herr C -adresse=Strasse C; 12345 Stadt C; +adresse=Strasse C;; 12345 Stadt C;; anrede=Sehr geehrter Herr C, einleitung=anbei die Rechnung anzahl=1 diff --git a/rechnung.sh b/rechnung.sh index 4080fd0..0cf6a16 100755 --- a/rechnung.sh +++ b/rechnung.sh @@ -460,27 +460,29 @@ make_invoice() ( dead_days="16" fi + # Bei der Ersetzung unten wird jedes ';' durch genau ein '\' ersetzt. Daher ist die Anzahl der ';' wichtig. month_ascii=$(date '+%B') inv_date=$(date '+%Y%m%d') - inv_dead=$(date -d "+${dead_days}days" '+%d.\\,%m.\\,%Y') + inv_dead=$(date -d "+${dead_days}days" '+%d.;,%m.;,%Y') rechnungsnummer="$inv_date--$LFDNR" subject="Rechnung zu $SHORT" filename="$(date '+%Y%m%d')_Rechnung_${month_ascii}_$(echo "$KUNDE" | $TR_BIN " " "_").ltx" - buffer="$KUNDE; $ADRESSE" - anschrift="${buffer//;/\\\\\\\\}" + buffer="$KUNDE;; $ADRESSE" + #anschrift=$(echo "$buffer" | sed 's/;/\\\\/g') + print_info "Erstelle Rechnung: $filename" { printf "s!#LCOFILE#!%s!\n" "$LCO" printf "s!#SUBJECT#!%s!\n" "$subject" printf "s!#ANREDE#!%s!\n" "$ANREDE" - printf "s!#ANSCHRIFT#!%s!\n" "$anschrift" + printf "s!#ANSCHRIFT#!%s!\n" "$(echo "$buffer" | sed 's/;/\\\\/g')" printf "s!#RECHNUNGSNUMMER#!%s!\n" "$rechnungsnummer" printf "s!#ANZAHL#!%s!\n" "$ANZAHL" printf "s!#POSITION#!%s!\n" "$POSITION" printf "s!#EINLEITUNG#!%s!\n" "$EINLEITUNG" printf "s!#BETRAG#!%s!\n" "$BETRAG" - printf "s!#DEADLINE#!%s!\n" "$inv_dead" + printf "s!#DEADLINE#!%s!\n" "$(echo "$inv_dead" | sed 's/;/\\\\/g')" } >$SEDFILE cp "$TEMPLATEFILE" "$filename" $SED_BIN -i -f "$SEDFILE" "$filename"