The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > UNIX for Dummies Questions & Answers
.
Google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 02-17-2008
sophiadun sophiadun is offline
Registrierte Nutzer
  
 

Join Date: Feb 2008
Beiträge: 10
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
  #2 (permalink)  
Old 02-18-2008
Lakris Lakris is offline
Registrierte Nutzer
  
 

Join Date: Oct 2007
Beiträge: 246
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
  #3 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registrierte Nutzer
  
 

Join Date: Feb 2008
Beiträge: 10
Thumbs up

Vielen Dank, Lakris. Ich will versuchen, es aus
  #4 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registrierte Nutzer
  
 

Join Date: Feb 2008
Beiträge: 10
Oh, was ist, wenn die Eingabedatei wie:
Beginn aaaaa
txt1
Ende
;
Beginn bbbbbb
txt2
Ende
;
Beginn cccc
txt3
Ende
;
Beginn ddd
txt4
Ende
;
  #5 (permalink)  
Old 02-18-2008
Lakris Lakris is offline
Registrierte Nutzer
  
 

Join Date: Oct 2007
Beiträge: 246
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.
  #6 (permalink)  
Old 02-18-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
addict
  
 

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2915

Code:
awk '/^Begin/{close(f);f=$2".txt"}f{print>f}' input

  #7 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registrierte Nutzer
  
 

Join Date: Feb 2008
Beiträge: 10
Zitat:
Zitat von Lakris View Post
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.
Nein, ich möchte, dass sie keine Namen Object-aaaaa.txt. Es sollte als aaaaa.txt


Danke
Closed Thread

Lesezeichen

Tags
Linux, Ubuntu

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 08:54 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0