Servus! Ich glaube, dass hier sicher einige unter euch sind, die sich gut mit derartigen Textersetzungsprogrammen auskennen, die mit links eine Befehlszeile schreiben können, die: Aus einer Textdatei Textstücke, die mit file= beginnen und mit .dat enden erfasst und diesem z.B. mit einem Newline oder einem Text getrennt in eine andere Textdatei schreibt. Ich hab mir zwar schon Perl angesehen, aber ich bring es nicht zusammen. Danke im Voraus, Stefan
1 | perl -ne '/^file=(.*\.dat)$/ && print $1,"\n"' source.txt > target.txt |
Oder soll das "file=" auch mit in die Ausgabe, also ganze Zeilen kopieren?
1 | perl -ne '/^file=.*\.dat$/ && print' source.txt > target.txt |
Oder steht das "file=" nicht immer am Zeilenanfang, und das ".dat" nicht immer am Zeilenende, und das ganze kann mehrfach pro Zeile vorkommen?
1 | perl -ne 'while (/(file=[^\.]*\.dat)/g) { print $1,"\n";}' source.txt > target.txt |
Wenn file= und .dat nicht auf einer Zeile sind, dann kannst du awk vergessen. Ansonsten
1 | cat deine datei | awk '/^file=\.dat$/{print $0}' |
wenn deine Datei so aussieht abc 123 file=xyz.dat blabla plumplum file=dudilidu.dat abc kannst du wie oben gezeigt mit awk filtern wenn es komplexer ist würde ich python nehmen
1 | import re |
2 | pattern = re.compile(r'file=(.*)\.dat', re.M) |
3 | lst = re.findall(file("datei", "r").read()) |
4 | for i in lst: |
5 | print i |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.