Zeilenweise suchen, löschen und ersetzen / Inhalt einfügen

T

TeeBee

Hallo liebe Community.
Habe ein kleines Problem und bin leider nicht so der Linux-Freak... Ich hoffe mal ihr könnt mir da vielleicht ein wenig weiter helfen.

Folgende Situation/Problem:
Ich baue gerade ein paar IPK-Packages für meinen Sat-Reciever (TitanNit).
Möchte damit z.B. diverse Updatefunktionen auf meinem Reciever durchführen.
In diesem Beispiel sind es ein paar Internetradiosender, die ich intelligent austauschen/updaten oder ergänzen möchte...

Hier mal meine "preinst" Datei, die ich erstmal bearbeiten möchte:

Code:
#!/bin/sh
#
TMP=/tmp

#####################
## Internet-Stream-Updater
#####################

echo "Checking favorites file..."
[ -d /media/autofs/sda1/swapextensions/player ] || mkdir -p /media/autofs/sda1/swapextensions/player

rm -rf /media/autofs/sda1/swapextensions/player/favorite
wget -O /media/autofs/sda1/swapextensions/player/favorite http://www.mydomain.com/titannit/download.php?file=favorite
chmod 755 /media/autofs/sda1/swapextensions/player/favorite
######
echo "Tithek Favorites Update completed successfully."
echo ""
echo ""
# wget -O /tmp/readme.txt http://www.mydomain.com/titannit/readme.txt
# more /tmp/readme.txt
# rm /tmp/readme.txt
sleep 2

exit 0

Ändern möchte ich noch:
1. "/media/autofs/sda1/swapextensions/" muss durch eine feste Variable ersetzt werden wie z.B. %swapextensions% oder so... (weiß nicht wie man die Variablen da genau deklariert und einsetzt... und welche festgelegten Systemvariablen es gibt bzw. wo man die nachlesen kann...)

2.
Die alte/neue "favorite" Datei enthält z.B. folgenden Inhalt:
Code:
JAM FM#http://xxxxxxxx.com/jam-bnd-mp3#http://atemio.dyndns.tv/mediathek/menu/internetradio.jpg#internetradio.jpg#Internet Radio#2
TechnoBase House#http://99.99.99.99:80#http://atemio.dyndns.tv/mediathek/menu/internetradio.jpg#internetradio.jpg#Internet Radio#2
TechnoBase Trance#http://99.99.99.99:80#http://atemio.dyndns.tv/mediathek/menu/internetradio.jpg#internetradio.jpg#Internet Radio#2
[...]

Das Script löscht die alte Datei (sofern vorhanden), und läd eine aktuelle vom Server herunter.
Besser wäre es - sofern bereits eine Datei existiert - die Datei zu öffnen und nach bestimmten Links zu suchen und diese erst einmal zu löschen.
Dazu könnte ich wie folgt eine Datei mit Suchbegriffen auf meinem Webserver anlegen und die erstmal ins TMP Verzeichnis downloaden:

Code:
JAM FM#http://
TechnoBase House#http://
TechnoBase Trance#http://
[...]

Nun müsste ich mit einer Schleife die originale "favorite"-Datei auf dem Reciever nach dem Begriff "JAM FM#http://" durchsuchen und dann die betreffende Zeile löschen.
Nachdem die alte favorite Datei bereinigt worden ist, kann man nun die neue favorite-Datei vom Webserver herunterladen und den Inhalt der Datei an die vorhandene Datei auf dem Reciever anhängen.

Sicher könnte man das ganze Script noch weiter optimieren, so dass z.B. auch die Sortierung und Struktur erhalten bleibt, sofern man z.B. Zeilen in der "favorite" selber verschoben hat. Aber ich will es hier nicht gleich übertreiben ;)

Danke :)
 
/media/autofs/sda1/swapextensions/" muss durch eine feste Variable ersetzt werden wie z.B. %swapextensions%
swapextensions="XYZ"
echo $swapextensions
bzw.
/media/autofs/sda1/$swapextensions/player

Besser wäre es - sofern bereits eine Datei existiert - die Datei zu öffnen und nach bestimmten Links zu suchen und diese erst einmal zu löschen.

if test -e /pfad/dateiname
then
sed -e /"URL die gesucht werden soll"/d dateiname > dateiname_kopie
mv dateiname_kopie dateiname
fi

Nun müsste ich mit einer Schleife die originale "favorite"-Datei auf dem Reciever nach dem Begriff "JAM FM#http://" durchsuchen und dann die betreffende Zeile löschen.

wget url/dateiname1
sed -e /"JAM FM\#http://"/d dateiname1 > dateiname_kopie
mv dateiname_kopie dateiname1

cat dateiname1 >> dateiname

Angaben ohne Gewehr! ;-)
 

Ähnliche Themen

[HowTo] TeamSpeak 2 - RC2 - Server (Deutsch/Englisch)

Zurück
Oben