PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Makefile ändern per script [bash]



Sector1379
13-03-2006, 12:08
Hallo zusammen

Ich habe ihr ein kleines kniffliges Problem. Ich muß ein Makefile an eine bestimmten Stelle aus einem Script heraus abändern. Die Stelle sieht immer gleich aus unzwar so.

VERSION = -nummer

Der User hat nun die möglichkeit seinen Namen im Script noch einzugeben und dann sollte dieser an die nummer ergänzt werden. Also so

VERSION = -nummer-$NAME

Ich habe schon versucht das über einen sed Befehl zu lösen, aber leider geht das auf diese weise nicht. Weil die Variabel aus dem Script die das Makefile ändern soll nicht von sed übernommen wird.

sed -e 's/-nummer/-nummer-$NAME/' Makefile

So sollte es aussehen:

VERSION = -nummer-name

Aber das kommt dabei raus:

Version = -nummer-$NAME

Kann mir von euch jemand einen Tip geben wie man sowas am besten macht.

Mehlwurm
13-03-2006, 12:57
vielleicht kommst du mit


grep VERSION | awk '{print $2 name}'

weiter

hier kannst du name auch als variable nehmen glaub ich ...
und dann nicht printen, sondern ändern...

Sector1379
13-03-2006, 13:20
Hallo Mehlwurm

Danke für deine schnelle Antowort aber leider komme ich damit nicht weiter, auch dieser Befehl ändert die Zeile nicht ab.

Ich habe das mal so gemacht ich denke das meintest du auch so.

grep -o '-nummer' Makefile| awk '{print $2 -name}'

Mehlwurm
13-03-2006, 13:26
ich weiss auch nicht wie es genau geht, aber mit dem awk kannst du auch in die datei schreiben .. war nur als hilfe gedacht .. hoffe du kommst weiter

klaus_harrer
13-03-2006, 13:35
Hallo

Es sollte:


sed -e "s/-nummer/-nummer-$NAME/" Makefile

funktionieren

MfG
klaus_harrer

Sector1379
13-03-2006, 18:41
Hallo

Leider geht auch der Befehl nicht die datei bleibt unverändert.

Trotzdem danke für deine Antwort.

peschmae
13-03-2006, 19:48
So wies da steht ist auch nur zum angucken ob er denn auch wirklich das richtige macht - das geänderte Zeugs wird auf stdout ausgegeben. Zum in der Datei ändern brauchst du noch die Option -i, also:


sed -e "s/-nummer/-nummer-$NAME/" -i Makefile

MfG Peschmä

Sector1379
13-03-2006, 21:05
Mensch Klasse!!! vielen dank das klappt