Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [gelöst] Leerzeichen ersetzen  (Read 2562 times)

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
[gelöst] Leerzeichen ersetzen
« on: 2010/12/17, 20:19:26 »
Hallo zusammen,
ich sitze hier gerade vor einen kniffligen Scriptproblem.Wie kann ich aus der Crontab bei allen Zeilen die ersten fünf Leerzeichen (also die ersten 5 Felder) durch ein anderes Zeichen ersetzen, zB. den '#'.

Code: [Select]
09 20 * * * /usr/local/scripts/testscript.sh -a -x

Das Ergebnis sollte dann so ausschauen:
Code: [Select]
09#20#*#*#*#/usr/local/scripts/testscript.sh -a -x

Ein erster Ansatz war den awk zu nutzen der kennt aber nur feste Anzahl von Spalten (Feldern) und ist daher ungeeignet, da diese Variabel sein kann. Die Leeräume im sechsten Crontab-Feld (Kommando) sind variabel.

Was gäbe es für Lösungsmöglichkeiten?

Offline ralul

  • User
  • Posts: 1.809
Leerzeichen ersetzen
« Reply #1 on: 2010/12/17, 22:18:32 »
cat datei | sed -e's/ /#/' -e's/ /#/' -e's/ /#/' -e's/ /#/' -e's/ /#/' >neuDatei
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline brummer

  • User
  • Posts: 272
    • http://guitarix.sourceforge.net/
Leerzeichen ersetzen
« Reply #2 on: 2010/12/17, 23:08:38 »
sed würde ich auch nehmen, hier sind noch nen paar vorschläge

http://sed.sourceforge.net/sed1line_de.html

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Leerzeichen ersetzen
« Reply #3 on: 2010/12/18, 16:08:09 »
@ralul: Danke, das habe ich gesucht. Manchmal sieht man den Wald vor lauter Bäumen nicht ;-)
@brummer: Danke, für den Link

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
[gelöst] Leerzeichen ersetzen
« Reply #4 on: 2010/12/20, 12:55:32 »
Ich hab' auch noch eine Lösung gefunden.
Code: [Select]

STRING="09 20 * * * /usr/local/scripts/testscript.sh -a -x"
for TMP in 1 2 3 4 5
        do
        VERARBEITET=$(echo "${STRING/ /#}")
        STRING=$VERARBEITET
done
echo "$STRING"

09#20#*#*#*#/usr/local/scripts/testscript.sh -a -x


Gute Beispiele zur Stringverarbeitung gibt's im Advanced Bash-Scripting Guide: Chapter 10. Manipulating Variables