seminar-wir-bauen-uns-einen.../scripte/count-tsv.sh

30 lines
789 B
Bash
Raw Permalink Normal View History

#!/bin/bash
# Script zur Zählung von belegten Werten in TSV-Dateien
# Stand: 05.01.2017
2016-12-19 00:24:58 +01:00
# Nutzung: ./count-tsv.sh file.tsv
# Abfrage der Dateinamen
if [ -z "$1" ]
then
echo "Bitte Dateinamen angeben!"
2016-12-19 00:24:58 +01:00
echo "Beispiel: ./count-tsv.sh file.tsv"
exit
else
files=($*)
2017-01-05 18:18:38 +01:00
printf '%s\t%s\t%s\n' MARC-Feld Vorkommen Mehrfachbelegung
fi
# Schleife für mehrere Dateien
for file in "${files[@]}"; do
# Spaltennamen erfassen
2017-01-05 18:18:38 +01:00
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
2017-01-05 18:18:38 +01:00
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