B
Bad_Rockk
Mitglied
Hallo zusammen,
beschäftige mich erst seit kurzem mit Programmierung und bin daher noch nicht so fit, also entschuldigt falls meine Frage eigentlich jedem anderen klar ist außer mir.
Arbeite mit cygwin.
Habe folgenden Code:
Code:
in der beispieltext.txt stehen 3 Zeilen:
Beispieltext
Ersetze x durch y
1 = 2
wenn ich jetzt das den Code ausführe, ersetzt er mit zwar mein x durch das y aber er löscht auch gleichzeitig die Zeilenumbrüche! Wie kann ich das verhindern? Die Datei soll danach eigentlich genauso aufgebaut sein wie zuvor nur mit den ersetzten Kriterien.
Habe jetzt gerade gesehen, dass wenn ich das ergebnis.txt in Notepad++ öffne, die Formatierung noch stimmt. Im normalen Windows Editor aber nicht. Besteht das Problem jetzt an meinem Code oder an Windows Editor?
Habe jetzt mal versucht zwei verschiedene Ersetzungen zu machen. Das ganze habe ich dann so gedacht, dass ich es universell einsetzen kann. Daher habe ich versucht mit Variablen zu arbeiten:
Code:
Aber leider funktioniert das nicht so wie ich es gedacht habe. Bekomme die Fehlermeldung: No such File or Directory. Aber die Dateien sind da.
Als Ausgabe bekomme ich Dateien mit der Endung .txt] die aber leer sind?!
Das ganze ist nur ein erstes Beispiel für mich, damit ich die Funktionsweiße verstehe. Das ganze soll später in ein größeres Skript eingebaut werden. Dabei soll eine Datei mehrmals nach bestimmten Kriterien suchen und ersetzen, z.b. A mit Wert B aus Tabelle Spalte 1, C mit Wert D aus Tabelle Spalte 2 und E mit Wert F aus Tabelle Spalte 3 ersetzen. Und dann das ganze in einer Datei ablegen. Das ganze muss dann mehrmals gemacht werden, immer reihenweiße bis die Tabelle komplett abgearbeitet ist.
Aber das nur zu Info. Erstmal vorne Anfangen...
Würde mich freuen, wenn mir da jemand weiterhelfen könnte.
Gruß
beschäftige mich erst seit kurzem mit Programmierung und bin daher noch nicht so fit, also entschuldigt falls meine Frage eigentlich jedem anderen klar ist außer mir.
Arbeite mit cygwin.
Habe folgenden Code:
Code:
Code:
cat beispieltext.txt | sed -e "s/ x / y /g" > ergebnis.txt
in der beispieltext.txt stehen 3 Zeilen:
Beispieltext
Ersetze x durch y
1 = 2
wenn ich jetzt das den Code ausführe, ersetzt er mit zwar mein x durch das y aber er löscht auch gleichzeitig die Zeilenumbrüche! Wie kann ich das verhindern? Die Datei soll danach eigentlich genauso aufgebaut sein wie zuvor nur mit den ersetzten Kriterien.
Habe jetzt gerade gesehen, dass wenn ich das ergebnis.txt in Notepad++ öffne, die Formatierung noch stimmt. Im normalen Windows Editor aber nicht. Besteht das Problem jetzt an meinem Code oder an Windows Editor?
Habe jetzt mal versucht zwei verschiedene Ersetzungen zu machen. Das ganze habe ich dann so gedacht, dass ich es universell einsetzen kann. Daher habe ich versucht mit Variablen zu arbeiten:
Code:
Code:
#bin/bash
#
DATEI="beispieltext.txt"
TEMP="temp.txt"
AUSGABE="ergebnis.txt"
#
SUCHE1=" x "
ERSETZE1=" y "
SUCHE2="1"
ERSETZE2="2"
#
cat $DATEI| sed -e "s/$SUCHE1/$ERSETZE2/g" > TEMP
cat $TEMP | sed -e "s/$SUCHE2/$ERSETZE2/g" > AUSGABE
Aber leider funktioniert das nicht so wie ich es gedacht habe. Bekomme die Fehlermeldung: No such File or Directory. Aber die Dateien sind da.
Als Ausgabe bekomme ich Dateien mit der Endung .txt] die aber leer sind?!
Das ganze ist nur ein erstes Beispiel für mich, damit ich die Funktionsweiße verstehe. Das ganze soll später in ein größeres Skript eingebaut werden. Dabei soll eine Datei mehrmals nach bestimmten Kriterien suchen und ersetzen, z.b. A mit Wert B aus Tabelle Spalte 1, C mit Wert D aus Tabelle Spalte 2 und E mit Wert F aus Tabelle Spalte 3 ersetzen. Und dann das ganze in einer Datei ablegen. Das ganze muss dann mehrmals gemacht werden, immer reihenweiße bis die Tabelle komplett abgearbeitet ist.
Aber das nur zu Info. Erstmal vorne Anfangen...
Würde mich freuen, wenn mir da jemand weiterhelfen könnte.
Gruß