rdsps.sh

RDS wird generiert und fix auf 8 Zeichen gesetzt. Ideal für die Weitergabe an einen RDS-Decoder. Hier kann der Name/Text an $1 übergeben werden und ein Modus für Großbuchstaben eingeschaltet werden: $2=0 --> Großbuchstaben, $2=1 --> normal, wie Input. Bei kurzen Namen/Texten wird das RDS zentriert. Bei langen Namen/Texten wird das RDS gekapert auf 8 Zeichen. Untypische Zeichen fürs RDS werden ersetzt. 

 HOWTO: 

 input="Regio 8"

mode=1 # oder 0 für erzwungene Großbuchstaben

rds=$(bash lib/rdsps.sh "$input" "$mode")

echo "RDS-PS: [$rds]" 

   

 Script: 

 #!/bin/bash

if [ "$2" = "1" ]; then

 # Entferne alle Zeichen außer Großbuchstaben, Zahlen und bestimmten Satzzeichen

 var=$(echo "$1" | sed 's/[^A-Za-z0-9.,!?*-]/_/g; s/ /_/g; s/Ä/A/g; s/Ö/O/g; s/Ü/U/g; s/ä/a/g; s/ö/o/g; s/ü/u/g')

elif [ "$2" = "0" ]; then

 # Ersetze Kleinbuchstaben durch Großbuchstaben und entferne alle anderen nicht gewünschten Zeichen

 var=$(echo "$1" | sed 's/[a-z]/\U&/g' | sed 's/[^A-Z0-9.,!?*-]/_/g; s/ /_/g; s/Ä/A/g; s/Ö/O/g; s/Ü/U/g; s/ä/a/g; s/ö/o/g; s/ü/u/g')

fi

length=${#var}

if [ "$length" = "1" ]; then

 echo "___${var}____"

elif [ "$length" = "2" ]; then

 echo "___${var}___"

elif [ "$length" = "3" ]; then

 echo "__${var}___"

elif [ "$length" = "4" ]; then

 echo "__${var}__"

elif [ "$length" = "5" ]; then

 echo "_${var}__"

elif [ "$length" = "6" ]; then

 echo "_${var}_"

elif [ "$length" = "7" ]; then

 echo "${var}_"

elif [ "$length" = "8" ]; then

 echo "${var}"

elif [ "$length" -ge "9" ]; then

 var="${var:0:8}"

 echo "$var"

fi

exit 0 

  