![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| UNIX for Dummies Questions & Answers Wenn Sie nicht sicher sind, wo Sie eine UNIX-oder Linux-Frage, post it here. Alle UNIX-und Linux-Anfänger willkommen! |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Zu analysieren durch die File-und Print-Ausgabe mit awk oder sed-Script | cdfd123 | Shell Programmierung und Scripting | 4 | 03-03-2008 12:07 PM |
| parse Textdatei | craggm | Shell Programmierung und Scripting | 9 | 02-27-2007 02:13 AM |
| parse Textdatei | klick81 | Shell Programmierung und Scripting | 3 | 12-18-2006 12:04 PM |
| Parse Text-Datei und senden Sie Mails | Amruta Pitkar | UNIX for Dummies Questions & Answers | 12 | 08-11-2006 04:56 AM |
| Wie zu analysieren eine Textdatei mit \ 034 als Feld-und \ 035 Ende der Meldung als Trennzeichen? | indianya | Shell Programmierung und Scripting | 1 | 08-26-2005 10:20 PM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
parse über eine Text-Datei und Ausgabe viele
Hallo, alle
Die Eingabedatei Muster ist wie folgt: Beginn objekt1 txt1 Ende ; Beginn objekt2 txt2 Ende ; ... Ich möchte parsen einer Datei in Object1.txt, Obeject2.txt ... jeder enthält eine Aussage von 'begin "bis"; ", z. B. object1.txt enthält: Beginn objekt1 txt1 Ende ; --------------------------- Any thoughts? auch Fragen 1. jedes Awk-oder SED bei der Suche nach einem Muster über viele Zeilen? 2. wie kann ich viele Dateien ausgegeben? 3. Soll ich diesen Thread zu "Shell-Programmierung und Scripting"? Vielen Dank im Voraus ![]() |
|
||||
|
Wenn Sie bash Man könnte versuchen, etwas davon, sehr einfach und wahrscheinlich viele Fallstricke. Aber da Sie sind Verarbeitung Quellcode gibt es syntaktischen Regeln, kann erwartet werden, dass sie eingehalten werden. Es soll lediglich für die Kontrollen der Beginn Wort und erhöht den Dateinamen, wenn Index auf. Code:
lakris@ubuntu:~/projekt/scripts$ cat projekt.txt Begin Object1 txt1 end ; Begin Object2 txt2 end ; Begin Object3 txt3 end ; Begin Object4 txt4 end ; lakris@ubuntu:~/projekt/scripts$ cat splitit.sh #!/bin/bash cnt=0 while read line;do [[ "$line" =~ "Begin" ]] && cnt=$(($cnt+1)) echo $line goes into Object$cnt.txt done < projekt.txt lakris@ubuntu:~/projekt/scripts$ ./splitit.sh Begin Object1 goes into Object1.txt txt1 goes into Object1.txt end goes into Object1.txt ; goes into Object1.txt Begin Object2 goes into Object2.txt txt2 goes into Object2.txt end goes into Object2.txt ; goes into Object2.txt Begin Object3 goes into Object3.txt txt3 goes into Object3.txt end goes into Object3.txt ; goes into Object3.txt Begin Object4 goes into Object4.txt txt4 goes into Object4.txt end goes into Object4.txt ; goes into Object4.txt lakris@ubuntu:~/projekt/scripts$ Change "geht in" auf ">>", wenn Sie sicher sind, dass die Ausgabe ist das, was Sie wollen. Wird es für jede Datei mit diesem Namen, so können Sie entfernen möchten jedes Objekt *. txt erster Stelle. / Lakris |
|
||||
|
dann die erste Beginn Erklärung (aaaaa) endet in Object1.txt die zweite (bbbbbb) in Object2.txt usw. Sie wollen sie den Namen aaaaa.txt Objekt-, Objekt-bbbbbb.txt etc?
Werfen Sie einen Blick auf die while read line konstruieren. Sie können getrennte es um mehr als eine Variable ... oder Sie können behandeln Linie als ein Array. ![]() |
|
||||
|
Zitat:
Danke |
![]() |
| Lesezeichen |
| Tags |
| Linux, Ubuntu |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|