cowsay_intro_for_bash/spruecheGenerator.sh

34 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
OUTPUT_FILE="sprueche.txt"
HEADER_FILE="sprueche.h"
# Optional: Datei vor dem Lauf leeren, damit wir genau 200 frische Sprüche haben.
# (Wenn du über mehrere Durchläufe hinweg sammeln willst, entferne diese Zeile)
> "$OUTPUT_FILE"
echo "Sammle 200 formatierte Sprüche..."
for i in {1..200}; do
# 1. fortune ausführen
# 2. sed für die Ersetzungen nutzen
# 3. awk für die Zeilenumbrüche und das finale \n nutzen
fortune | sed \
-e ':a' -e 's/^\(\( \)*\) /\1\ /' -e 'ta' \
-e ':b' -e 's/ \(\( \)*--\)/\ \1/' -e 'tb' \
-e 's/\*\([^*][^*]*\)\*/<b>\1<\/b>/g' \
-e 's/_\([^_][^_]*\)_/<i>\1<\/i>/g' | \
awk '{printf "%s%s", NR==1 ? "" : "<br>", $0} END {print ""}' >> "$OUTPUT_FILE"
done
echo "Durchsuche nach Duplikaten und entferne diese..."
# awk behält hier nur die Zeilen, die es noch nicht gesehen hat (!seen)
awk '!seen[$0]++' "$OUTPUT_FILE" > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
echo "Konvertiere in C-Header-Datei..."
# Die umgewandelte Datei als C-Header exportieren
xxd -i "$OUTPUT_FILE" > "$HEADER_FILE"
echo "Erfolgreich beendet!"
echo "-> $OUTPUT_FILE (Textdatei)"
echo "-> $HEADER_FILE (C-Header)"