Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Sed Zeichen löschen, 2 Fragen

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.10.2000
    Beiträge
    78

    Sed Zeichen löschen, 2 Fragen

    Hallo,

    ich möchte aus einer Datei bzw. String $1-$9 entfernen.
    Code:
    Host:        $0*$4*$6* $2Cat's $9| $1FunServer $0*$4*$6* $9-=XT-V2=-
    Ping:        0  ... usw.
    Wenn ich jetzt sed ansetze die komplette Datei zu durchkämmen ..

    sed 's/$./''/g' file1 > file2 bzw. sed 's/$.//g' file1 > file2

    sieht das in file2 gut aus.

    Code:
    Host:        *** Cat's | FunServer *** -=XT-V2=-
    Ping:        0 ....
    Führe ich das komplette Skript aus

    Code:
    # ...
    sed 's/$./''/g' file1 > file2
    
    host=`sed -n -e '/Host:/p' $file2 | sed -e 's#Host:##g'`; 
    ping=`sed -n -e '/Ping:/p' $file2 | sed -e 's#Ping: ##g'`;
    # ...
    
    echo Host: $host
    echo Ping: $ping
    erhalte ich für die Host-Variable die Dateien des Verzeichnisses aufgelistet

    Code:
    ed.txt fcneu-filt.txt fcneu.txt fc-player-filtered.txt fc-player.txt fctest1.sh fctest.sh huhn.txt serverfiltern.sh serverfiltern.sh~ serverfiltern.v1.sh serverfiltern.v2.sh serverfiltern.v2.sh~ servertest.sh Cat's | FunServer farcry-server-online.sh fc-ausgabe.txt fc-doku.txt fcneu2.txt fcneu-filtered.txt fcneu-filt.txt fcneu.txt fc-player-filtered.txt fc-player.txt fctest1.sh fctest.sh huhn.txt serverfiltern.sh serverfiltern.sh~ serverfiltern.v1.sh serverfiltern.v2.sh serverfiltern.v2.sh~ servertest.sh -=XT-V2=-
    Ping: 0
    Ändere ich das Ersatzzeichen im sed von '' auf irgendein anderes Zeichen z.B. x wird richtig ersetzt und ausgegeben.

    ----

    Zweite Frage:

    Wenn ich nun einen String auf die gleich Art filtern möchte funktioniert folgendes:

    Code:
    player1='$4einst$1zwei$4drei'
    echo $player1 | sed 's/$./''/g';
    Aber wie bekomme ich das Ergebnis in eine Variable?

    Code:
    # geht nicht
    player1='$4einst$1zwei$4drei'
    $player1_filtered=`echo $player1 | sed 's/$.//g'`;
    Gruß

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    1)
    In der Variable $host ist ein * - wenn du das einfach so mit echo ausgibst wird das durch den Inhalt des aktuellen Verzeichnisses ersetzt. Um das zu Verhindern machst du z.B. ein
    echo "Host: $host"

    2)
    das hast du doch oben schon gemacht:
    player1_filtered=`echo $player1 | sed 's/$.//g'`
    also ohne $ vor dem Variablennamen.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    20.10.2000
    Beiträge
    78
    Zitat Zitat von peschmae
    1)
    In der Variable $host ist ein * - wenn du das einfach so mit echo ausgibst wird das durch den Inhalt des aktuellen Verzeichnisses ersetzt. Um das zu Verhindern machst du z.B. ein
    echo "Host: $host"

    2)
    das hast du doch oben schon gemacht:
    player1_filtered=`echo $player1 | sed 's/$.//g'`
    also ohne $ vor dem Variablennamen.

    MfG Peschmä
    Besten Dank dafür, das bringt mich weiter!

    Gruß, Rupert

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.07.2003
    Beiträge
    147
    Du schreibst in die Datei 'file2' liest aber aus der Datei, die in der Variablen '$file2' definiert ist. Ist das nur ein Tippfehler in deinem Posting, oder steht das wirklich so in deinem Skript?

    mfg
    c.

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.10.2000
    Beiträge
    78
    Zitat Zitat von sagi
    Du schreibst in die Datei 'file2' liest aber aus der Datei, die in der Variablen '$file2' definiert ist. Ist das nur ein Tippfehler in deinem Posting, oder steht das wirklich so in deinem Skript?

    mfg
    c.
    Nur ein Tippfehler.
    Gruß

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •