zur Übersicht nächste Seite

Tabelle aus PDF

Generell gilt bei den weißen Textstellen auf dieser Seite: Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste.
Wichtig ist auch daß der verwendete Texteditor die Eingaben Linux-codiert speichert. Bei gedit kann man mit dem Menupunkt 
Speichern unter
Einstellungen vornehmen und diese sollten so aussehen

Bei Windows-codierten txt-Dateien kann es zu Problemen kommen.


Manchmal möchte man eine Tabelle aus einem PDF herauskopieren, damit man diese weiterverarbeiten kann. Sofern man die Zeichen kopieren kann (und es sich nicht um ein Bild handelt) kann man das Terminal zu Hilfe nehmen. Hier ein Beispiel aus einem PDF bei dem die Zeichen markiert sind

Kopieren dieser Zeichen im PDF und einfügen in gedit:

01.02. 1
0,75 28
0,98 2
0,69 3
0,15 0
0,00 1
1,29
03.02. 2
0,75 8
0,98 3
0,69 1
0,15 1
0,50 0
0,00
04.02. 2
0,75 31
0,98 8
0,69 11
0,15 3
0,50 0
0,00
05.02. 2
0,75 18
0,98 4
0,69 3
0,15 4
0,50 0
0,00

Dann wird diese Datei als hG.txt abgespeichert und das Terminal in dem Ordner geöffnet in dem die hG.txt liegt. Die Datei enthält Infos zu Datum, Preis und Menge. Man möchte Gesamt-Mengenzahlen pro Tag und Mengen pro Artikel über alle Tage. 

Man kann die Datei im Terminal aufrufen durch
cat hG.txt
Die gewünschten Mengen-Zahlen stehen pro Zeile an letzter Stelle - meistens jedenfalls. Es werden die folgenden Bausteine verwendet:

es wird am Ende jeder Zeile _ angefügt

es wird das zweite Feld mit Tennzeichen LEERZEICHEN ausgeschnitten

Es werden die Zeilen in denen , vorkommt gelöscht und ersetzt durch eine Zeile mit dem Zeichen #

Es werden alle Zeilen in eine Zeile geschrieben

es wird das Zeichen # in einen Zeilenumbruch verwandelt
cat hG.txt | sed 's/$/_/g' | cut -f 2 -d ' ' | sed '/,/ c #' | tr -d '\n' | sed 's/#/\n/g'
1_28_2_3_0_1_
2_8_3_1_1_0_
2_31_8_11_3_0_
2_18_4_3_4_0_

Diese Zahlen kann man im Terminal kopieren und in eine Tabelle einfügen (Einfügen - unformatierter Text) wobei man als Trennoption _ verwendet

Dann kann man schnell Zeilensummen (Gesamt-Mengenzahlen pro Tag) und 
Spaltensummen (Mengen pro Artikel über alle Tage) bilden

Es mag sein daß für andere Tabellen andere Terminal-Bausteine verwendet werden müssen.
Wenn man das Datum mit ausgeben möchte (z.B. für eine Tagesstatistik) kann man einen Baustein voranstellen, der bei allen Zeilen in denen ein Punkt vorkommt LEERZEICHEN durch _ ersetzt
sed '/\./ s/ /_/' 
cat hG.txt | sed '/\./ s/ /_/' | sed 's/$/_/g' | cut -f 2 -d ' ' | sed '/,/ c #' | tr -d '\n' | sed 's/#/\n/g'
01.02._1_28_2_3_0_1_
03.02._2_8_3_1_1_0_
04.02._2_31_8_11_3_0_
05.02._2_18_4_3_4_0_

Es ist etwas schwieriger wenn die Tabelle nur Zahlen enthält, ohne daß man Punkte (vom Datum) oder Komma (vom Preis) als Bearbeitungspunkte nutzen könnte:

Kopieren dieser Zeichen im PDF und einfügen in gedit:

1
28
2
3
0
1
2
8
3
1
1
0
2
31
8
11
3
0
2
18
4
3
4
0

Dann wird diese Datei als hH.txt abgespeichert und das Terminal in dem Ordner geöffnet in dem die hH.txt liegt. Es bleibt jetzt nur die Information, daß es bei der Tabelle 6 Spalten gibt. Also gruppiert man diese Zahlen in 6-er-Blocks:
cat hH.txt | sed 'N;N;N;N;N;s/\n/_/g'
1_28_2_3_0_1
2_8_3_1_1_0
2_31_8_11_3_0
2_18_4_3_4_0

Diese Zahlen kann man im Terminal kopieren und in eine Tabelle einfügen (Einfügen - unformatierter Text) wobei man als Trennoption _ verwendet

Man kann diese Block-Bildung natürlich auch bei obigem 1. Beispiel (also hG.txt) verwenden. Dazu kann man folgende Bausteine benutzen

sämtliche LEERZEICHEN werden durch einen Zeilenumbruch ersetzt
alle Zeilen die Komma oder Punkt enthalten werden gelöscht
Gruppierung der Zahlen in 6-er-Blocks

cat hG.txt | sed 's/ /\n/g' | sed '/[,.]/ d' | sed 'N;N;N;N;N;s/\n/_/g'
 
zur Übersicht nächste Seite

Datenschutzerklärung
Impressum