Veröffentlicht 2. November 201212 j Hallo, ich bin gerade dabei ein Script anzupassen, habe aber leider ein Problem. Folgene Zeile bringt mir Probleme... awk ' { print $2 } ' Datei | sed 's/\$//' | sort Ausgabe per Kommandozeile: Wort1 Wort2 Wort3 Ausgabe per Crontab: Wort1$ Wort2$ Wort3$ Kann mir jemand sagen was ich anpassen muss? Gruß Bummel
12. Dezember 201212 j Ich tippe mal auf einen Escape-Fehler. (und jetzt nur mal für mich, um zu sehen, ob ich nicht ganz verkalkt bin): Du willst so wie ich das Verstehe, jeweils beim zweiten Wort einer Zeile einer Datei das $ durch einen / ersetzen und dann sortieren? Bearbeitet 12. Dezember 201212 j von Ichnafi
13. Dezember 201212 j Autor Was ist ein Escape-Fehler? ^^ Vllt kenne ich das nur unter einer anderen "Bezeichung" Ich möchte das $ mit nichts ersetzen.
13. Dezember 201212 j Was ist ein Escape-Fehler? ^^ In manchen Programmiersprachen sind / und \ reservierte Zeichen, genauso wie z.B. " und ' . In Java gibt es ja sowas wie String test = ""; willste du jetzt ein " in den String speichern musst du diesesn escapen , sprich String test = "\""; Hoffe das hat es etwas verdeutlicht.
13. Dezember 201212 j Autor Ok kannte einfach diesen Begriff dafür nicht. Durch den \ habe ich ja auch das $ entwertet. Andernfalls würde das $ als Ende der Zeile gelten, so ist es einfach ein Zeichen.
13. Dezember 201212 j Schmeiße ich deinen Code in eine Datei und lasse diese von cron ausführen, klappt das Wunderbar. Zum Escapen: Pakt man deinen Code in Backticks und lässt das ganze durch ein echo ausgeben, ist das $ falsch escaped. hier müssten dann 3 \ vor das $. Wenn du dir sed sparen willst, geht es auch so: awk '{sub("\$",""); print $2}' DATEI | sort
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.