Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Bash: sed ohne Zeilenumbruch?

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.01.2015
    Beiträge
    3

    Bash: sed ohne Zeilenumbruch?

    Hallo,

    nach langer zeit habe ich auch mal wieder eine Frage.
    Also folgendes, ich habe ein Bash-Script geschrieben. Dieses soll aus zwei Listen mit jeweils 96 Einträgen nach und nach die einzelnen Zeilen in eine Variable schreiben für den nächsten Befehl:
    Code:
    #!/bin/bash
    
    declare -i count
    count="1"
    
    while [ $count -le 96 ]
    do
       system=$(sed -ne $count"p" db2-stages_ste-systeme)
       dienst=$(sed -ne $count"p" db2-stages_ste)
       ssh $system cat "/usd/"$dienst"a/utils/scripts/"$dienst
       count=$[$count+1]
    done
    Nun ist das Problem, dass er bei beiden Variablen ($system und $dienst) ein Zeilenumbruch drin ist, wodurch natürlich der folgende ssh- und cat-befehl fehlschlägt. Per Google bin ich darauf gekommen, ein | tr "\n" "" hinter das sed zu setzen, allerdings hatte dies keine Wirkung. Aber vielleicht könnt ihr ja helfen.

    Vielen Dank schonmal!

    LG
    Freki

  2. #2
    Registrierter Benutzer
    Registriert seit
    22.01.2015
    Beiträge
    3
    Habe jetzt eine eigene lösung gefunden. Undzwar ersetze ich mit tr den zeilenumbruch durch ein leerzeichen und schneide das dann der cut wieder raus. Sicher nciht die sauberste Lösung aber läuft.

  3. #3
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.699
    also nachvollziehen kann ich Dein Problem nicht.
    Ich habe mir mit
    Code:
    for I in `seq 99`; do echo "A$I" >> db2-stages_ste-systeme; echo "B$I" >> db2-stages_ste; done
    2 Dummy-Dateien angelegt und im Script ein echo vor den ssh gestellt. In der Ausgabe sieht das dann beispielsweise so aus:
    Code:
    ssh A84 cat /usd/B84a/utils/scripts/B84
    Wenn sed einen Zeilenumbruch an $system und $dienst hängt, dann hätte ich hier
    Code:
    ssh A84
     cat /usd/B84
    a/utils/scripts/B84
    in der Ausgabe erwartet.

    Wohlmöglich hängt das Verhalten davon ab, was wie in Deinen beiden Dateien drin steht...

    BTW: sed kann selbst Dinge entfernen, Stichwort `d' (delete)

    VG
    Rainer
    There's nothing a good whack with a hammer won't fix!

Stichworte

Lesezeichen

Berechtigungen

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