From 3dad4a3390f18ff7cfab6bf6a7e0644df4b3270c Mon Sep 17 00:00:00 2001 From: Felix Lohmeier Date: Thu, 5 Jan 2017 18:18:38 +0100 Subject: [PATCH] Korrektur 7.5 und count-tsv Script --- 07_5_alle_daten_in_ein_projekt_laden.md | 5 +++-- scripte/count-tsv.sh | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/07_5_alle_daten_in_ein_projekt_laden.md b/07_5_alle_daten_in_ein_projekt_laden.md index 44d903f..3b194e2 100644 --- a/07_5_alle_daten_in_ein_projekt_laden.md +++ b/07_5_alle_daten_in_ein_projekt_laden.md @@ -223,7 +223,7 @@ Terminal: In der grafischen Oberfläche von OpenRefine alle Projekte nacheinander laden und jeweils die folgenden Schritte durchführen: -* Transformation: Menü oben links "Undo / Redo" aufrufen und Button "Apply..." drücken. Den Inhalt aus der Datei [07_5_minimal.json](https://felixlohmeier.gitbooks.io/seminar-wir-bauen-uns-einen-bibliothekskatalog/content/openrefine/07_5_minimal.json) in die Zwischenablage kopieren und in das Textfeld von "Apply" einfügen und Button "Perform Operations" drücken. Achtung: Der Firefox-Browser hat unter Windows Probleme bei der Anzeige von Sonderzeichen (hier das verwendete Unit-Separator-Zeichen). Verwenden Sie daher unter Windows den Chrome-Browser zur Anzeige der Datei mit den Transformationsregeln. +* Transformation: Menü oben links "Undo / Redo" aufrufen und Button "Apply..." drücken. Den Inhalt aus der Datei [07_5_minimal.json](https://felixlohmeier.gitbooks.io/seminar-wir-bauen-uns-einen-bibliothekskatalog/content/openrefine/07_5_minimal.json) in die Zwischenablage kopieren und in das Textfeld von "Apply" einfügen und Button "Perform Operations" drücken. * Export: Menü oben rechts Export / "Tab separated value" wählen. Der Download sollte automatisch beginnen. Speichern Sie die Daten lokal in einem beliebigen Verzeichnis. Da die Projekte durch die vorherigen Transformationen wesentlich weniger Arbeitsspeicher benötigen, müssen Sie OpenRefine anders als bei Aufgabe 4 nicht mehr regelmäßig neu starten. Beachten Sie aber, dass Sie erst mit dem Beenden von OpenRefine sicher gehen können, dass alle Änderungen in den Projekten tatsächlich auf die Festplatte gespeichert wurden. Daher empfiehlt es sich trotzdem nach etwa 10 bearbeiteten Projekten den Docker-Container mit OpenRefine zu beenden und neu zu starten. @@ -272,5 +272,6 @@ Bedarf an Arbeitsspeicher: * {%s%}Character encoding: UTF-8{%ends%} * {%s%}Checkbox "Store file source..." deaktivieren{%ends%} * {%s%}Projektnamen vergeben (z.B. "haw komplett" und Button "Create Project" drücken{%ends%} +* {%s%}Menü oben links "Undo / Redo" aufrufen und Button "Apply..." drücken. Den Inhalt aus der Datei 07_5_minimal.json in die Zwischenablage kopieren und in das Textfeld von "Apply" einfügen und Button "Perform Operations" drücken.{%ends%} -Damit haben Sie nun endlich alle Daten in einem einzelnen Projekt. Das ist die Grundlage, auf der das nächste Kapitel aufsetzt. \ No newline at end of file +Damit haben Sie nun endlich alle Daten in einem einzelnen Projekt und die Spalten alphabetisch sortiert. Das ist die Grundlage, auf der das nächste Kapitel aufsetzt. \ No newline at end of file diff --git a/scripte/count-tsv.sh b/scripte/count-tsv.sh index 8dae673..a197153 100755 --- a/scripte/count-tsv.sh +++ b/scripte/count-tsv.sh @@ -11,19 +11,19 @@ if [ -z "$1" ] exit else files=($*) - printf '%s\n' MARC-Feld Vorkommen Mehrfachbelegung | paste -sd '\t' + printf '%s\t%s\t%s\n' MARC-Feld Vorkommen Mehrfachbelegung fi # Schleife für mehrere Dateien for file in "${files[@]}"; do # Spaltennamen erfassen - readarray columns -t < <(head -q -n1 ${file} | tr -d ' ' | tr '\t' '\n' | cat) + readarray -t columns < <(head -q -n1 ${file} | tr '\t' '\n' | cat) # Belegte Zellen in Spalten zählen und ausgeben number=1 for column in "${columns[@]}"; do - printf '%s\n' ${column} $(cut -d$'\t' -f ${number} ${file} | grep -v '^$' | wc -l) $(cut -d$'\t' -f ${number} ${file} | grep '␟' | wc -l) | paste -sd '\t' + printf '%s\t%s\t%s\n' "${column}" $(cut -d$'\t' -f ${number} ${file} | grep -v '^$' | wc -l) $(cut -d$'\t' -f ${number} ${file} | grep '␟' | wc -l) number=$(($number+1)) done done