[Server] Hilfe für ein Bash-Script gesucht

SoKoBaN

B.Ohlsen der alte Schwede
Teammitglied
Hilfe für ein Bash-Script gesucht

Ich hab da ein Szenario, welches ich mit einem Script lösen will.
Ich muss auf einen Rechner von einem anderen eine Datei mittels wget holen.
Der Inhalt dieser Datei (eine Zeile) sollte nun ausgelesen und in einer Variable gepeichert werden.
Jetzt muss eine Datei auf dem Zielrechner geöffnet, nach einer bestimmten Zeile gesucht und mit dem Inhalt der Variable ersetzt werden.

Das ganze soll nun als Script in einem Rutsch durchlaufen werden.

Ob mir da jemand bei helfen, oder wenigstens sagen, wie ich mir selbst helfen kann?
 
Hä? Und weshalb brauchst du dafür zwei Rechner, nur um auf einem eine Datei zu ändern?

/dev
 
Original geschrieben von Deever
Hä? Und weshalb brauchst du dafür zwei Rechner, nur um auf einem eine Datei zu ändern?
Ich muss auf einen Rechner von einem anderen eine Datei mittels wget holen.
 
Der Inhalt dieser Datei (eine Zeile) sollte nun ausgelesen und in einer Variable gepeichert werden.

cat dateiname |grep String > variable

zumindest das mit dem durchsuchen hätten wir.
hab leider kein Linux hier um das zu testen.
 
Hmmm...irgendwie hab ich mich wohl undeutlich ausgedrückt.

Also nochmal, ohne den wget Teil.

Ich habe eine Dateitest.txt
In dieser steht ein einziges unbekanntes Wort.
Nun muss ich diese Datei öffnen, den Text (das eine Wort) auslesen und in eine Variable $unknown speichern.

Jetzt muss ich eine andere Datei zieltest öffnen.
In jener steht nun ein Haufen Text.
Ich muss nun den Text nach einer bestimmten Zeile durchsuchen, wobei ich nur einen Teil der Zeile kenne, ich also mit einer Wildcard arbeiten muss. z.B.
zeilentext.blah=unbekannt unbekannt ist der Teil, den ich wiederum nicht kenne. Ich müsste also nach dem Schema zeilentext.blah=* suchen.

Jetzt muss in der gefundenen Zeile
zeilentext.blah=*
mit
zeilentext.blah=$unknown
ersetzt werden.

Das ganze wie gesagt in einem Rutsch mittels Shellscript.
Ich hoffe, das kam jetzt verständlicher rübär ;)
 
Ich schlage mal als Methode das zu erledigen ssh vor. Dazu muss ssh-PublicKey Authentication eingerichtet werden zwischen den Usern der beiden Rechner.
Das ist ein ungetesteter Vorschlag:

wget --output-document=datei http://www.meinserver.de/meinedatei
unknown=$(cat datei|grep "DeinString")
ssh RemotePC cat /Pfad/RemoteDatei \
\| sed -e "s/zeilentext.blah=.*$/zeilentext.blah=$unknown/" \
\> /tmp/RemoteTmpDatei
ssh RemotePC mv /tmp/RemoteTmpDatei /Pfad/RemoteDatei
 
Zuletzt bearbeitet:
sed...das war mein Stichwort ;)

Ich hab mich jetzt mal in den Stream Editor reingelesen. Feines Teil.

Den search&relpace Teil hab ich so gelöst:

Code:
#!/bin/bash
unknown=$(cat test.txt)
sed -e "s/zeilentext.blah=.*$/zeilentext.blah=$unknown/" test.txt > sed.txt
mv sed.txt test.txt



##Edit
Ich Bloedmann hatte im regex nen Zahlendreher...da konnte nix gefunden werden.
Jetzt funktionuckelts auch mit sed.

THX @fork :)
 
Zuletzt bearbeitet:
Oben