Skip to content

Commit

Permalink
Konsolenmagie
Browse files Browse the repository at this point in the history
  • Loading branch information
ottlinger committed Feb 11, 2023
1 parent 112f5ea commit d7d3211
Showing 1 changed file with 39 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
title=Konsolenmagie - Dateien finden, Dublikate entfernen und Inhalte zusammenführen
date=2023-02-12
type=post
tags=console, find, grep, sort, cat, dedup
status=published
~~~~~~
Bedingt durch einen technischen Defekt habe ich unversionierte Textdateien mit einer uralten Version überschrieben. Als vernünftiger Informatiker habe ich diverse Datensicherungen.
Das Problem ist nur, dass es nun verschiedene Dateien mit gleichem Inhalt zu verschiedenen Zeitpunkten gibt. Stellt Euch folgendes Szenario vor:
```bash
$ find . | grep "rechnungen.txt"
20200101/Documents/data/rechnungen.txt
20200715/Documents/older_data/rechnungen.txt
...
20221231/Documents/2023_data/rechnungen.txt
```
Jetzt will ich sämtliche Daten zusammenführen:
```bash
find . | grep "rechnungen.txt" | xargs | cat >> ~/Downloads/superrechnungen.txt
```
und habe nun alle Daten unsortiert in einer Datei.
```bash
cat superrechnungen.txt | sort >> sortedsuperrechnungen.txt
```
Jetzt sind alle Einträge alphabetisch sortiert, aber noch voller Dubletten.
```bash
sort sortedsuperrechnungen.txt
sort -u sortedsuperrechnungen.txt > reducedsuperrechnungen.txt
```
Tada! Jetzt kann ich die zusammengeführte Datei mittels [diff](https://manpages.ubuntu.com/manpages/trusty/man1/diff.1posix.html) gegen die aktuelle Version der rechnungen.txt vergleichen und sehe, welche Daten mir fehlen oder in der Zwischenzeit aktualisiert wurden.
Super, wie einfach das mit den traditionellen Boardmitteln aus [find](https://help.ubuntu.com/community/find), [grep](https://help.ubuntu.com/community/grep), [cat](https://wiki.ubuntuusers.de/cat/) und [sort](https://wiki.ubuntuusers.de/sort/) zu machen ist.
Was habe ich sonst noch gelernt aus dem Vorfall: rechnungen.txt ist nun in einem nicht öffentlichen Repository versioniert.

0 comments on commit d7d3211

Please sign in to comment.