[bash] sed frage

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von tevil, 10.02.2005.

  1. #1 tevil, 10.02.2005
    Zuletzt bearbeitet: 10.02.2005
    tevil

    tevil Grünschnabel

    Dabei seit:
    10.02.2005
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo!
    Ich versuche mittels script in einer configdatei vor dem compilieren etwas zu ersetzen
    z.B.: # CONFIG_BUNZIP2 is not set soll CONFIG_BUNZIP2=y werden

    Mein Versuch sieht so aus:
    Commandline funktioniert:
    Code:
    sed '/# CONFIG_BUNZIP2 is not set/s//CONFIG_BUNZIP2=y/g' busybox.config > busybox.config.new
    Script nicht:
    Code:
    for wort in "CONFIG_BUNZIP2" "CONFIG_DIRNAME" "CONFIG_DOS2UNIX" "CONFIG_TEE" "CONFIG_USLEEP" "CONFIG_WHO" "CONFIG_AWK" "CONFIG_ADDGROUP" "CONFIG_DELGROUP" "CONFIG_ADDUSER" "CONFIG_DELUSER" "CONFIG_GETTY" "CONFIG_CROND" "CONFIG_CRONTAB" "CONFIG_ARPING" "CONFIG_FTPGET" "CONFIG_FTPPUT" "CONFIG_NETSTAT" "CONFIG_TELNET" "CONFIG_TRACEROUTE" "CONFIG_FDISK"
    	do
    	raute='# '
    	isnot=' is not set'
    	jo='=y'
    	worte=$raute$wort$isnot
    	nocha=$wort$jo
    	echo $worte soll $nocha werden
    		sed '/$raute$wort$isnot/s//$wort$jo/g' busybox.config > busybox.config.backup
    		cp busybox.config.backup busybox.config
    	done
    Sieht vielleicht jemand den Fehler, bin eigentlich noch bei den ersten Gehversuchen.
    Danke.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Code:
    sed '/$raute$wort$isnot/s//$wort$jo/g' busybox.config > busybox.config.backup
    Schuss ins Blaue: Variablen werden nicht substituiert da innerhalb von ''

    Zudem weiss ich nicht ob das so funktioniert, normalerweise ist doch:
    Code:
    sed s/suche/ersetze/g
     
  4. tevil

    tevil Grünschnabel

    Dabei seit:
    10.02.2005
    Beiträge:
    3
    Zustimmungen:
    0
    Das seltsame an der sache ist, das wenn ich die variablen direkt im command reinklopfe und den befehl dann ,so wie früher gschrieben, ausführe, funktionierts.

    Und das versteh ich jetzt gar net :think:
    Habs für momentan aufgegeben und per hand gemacht.

    Aber vielleicht wissts ihr einen anderen weg, wie ich nur bei den zeilen ,wo gewünscht, den Kommentar entfernen und auch den parameter setzen kann.
    Danke
     
  5. tevil

    tevil Grünschnabel

    Dabei seit:
    10.02.2005
    Beiträge:
    3
    Zustimmungen:
    0
    Jetzt hob is :D

    Code:
    for wort in "CONFIG_BUNZIP2" "CONFIG_DIRNAME" "CONFIG_DOS2UNIX" "CONFIG_TEE" "CONFIG_USLEEP" "CONFIG_WHO" "CONFIG_AWK" "CONFIG_ADDGROUP" "CONFIG_DELGROUP" "CONFIG_ADDUSER" "CONFIG_DELUSER" "CONFIG_GETTY" "CONFIG_CROND" "CONFIG_CRONTAB" "CONFIG_ARPING" "CONFIG_FTPGET" "CONFIG_FTPPUT" "CONFIG_NETSTAT" "CONFIG_TELNET" "CONFIG_TRACEROUTE" "CONFIG_FDISK"
    	do
    	raute="# "
    	isnot=" is not set"
    	jo="=y"
    	worte=$raute$wort$isnot
    	nocha=$wort$jo
    	# echo \"$worte\" soll \"$nocha\" werden
    		sed "/$raute$wort$isnot/s//$wort$jo/g" busybox.config > busybox.config.backup
    		cp busybox.config.backup busybox.config
    	done
    Ich hab in der Zeile mit sed die ' mit "ersetzt.
    Jetzt gehts, komisch...
     
  6. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Logisch:
    echo 'ich bin joel' = ich bin joel
    echo 'ich bin $USER' = ich bin $USER
    USER=joel
    echo "ich bin $USER" = ich bin joel

    Innerhalb von '' werden Variablen nicht ersetzt, innerhalb von "" schon.

    Gruss
    Joel
     
Thema:

[bash] sed frage

Die Seite wird geladen...

[bash] sed frage - Ähnliche Themen

  1. [bash] if-Abfrage mit RegEx

    [bash] if-Abfrage mit RegEx: Hallo, ich möchte in einem Bash-Skript prüfen, ob die an das Skript übergebene Variable "src_ip" eine IPv4-Adresse ist. Eine detaillierte...
  2. Debug Modus [Bash]

    Debug Modus [Bash]: Huhu, mach ich gleich noch ein Thread, nachdem mir so gut und schnell geholfen wurde :) Also, ich will nun ein Debug Modus machen, daher ich...
  3. [bash] Verzeichnisse rekursiv durchlaufren?

    [bash] Verzeichnisse rekursiv durchlaufren?: Hallo zusammen, ich versuche mir zur Zeit mit ein paar (Bash)Scripts einen *sicheren* Backupscript zu schreiben. Dazu müsste ich ein Verzeichniss...
  4. Zeilen bis zum Wort XXXX löschen [Bash]

    Zeilen bis zum Wort XXXX löschen [Bash]: Hallo, Gibt es eine Möglichkeit alle Zeilen in einer Textdatei bis zu einem bestimmten Wort oder einer bestimmten Zeilen Nummer zu löschen?...
  5. [bash] mehrzeilige Rückgabe auswerten

    [bash] mehrzeilige Rückgabe auswerten: Hi also ein grep-befehl bringt folgende rückgabe: /bla/blubb/bling.10.txt:SUCHBEGRIFF WERT /bla/blubb/bling.2.txt:SUCHBEGRIFF WERT...