34 lines
1.2 KiB
Bash
Executable File
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)" |