The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen!

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Til at parse gennem fil og print output ved hjælp awk eller sed script cdfd123 Shell Programmering og Scripting 4 03-03-2008 12:07 PM
parse tekstfil craggm Shell Programmering og Scripting 9 02-27-2007 02:13 AM
parse tekstfil klick81 Shell Programmering og Scripting 3 12-18-2006 12:04 PM
Parse Tekstfil og sende mails Amruta Pitkar UNIX for dummyer Spørgsmål & svar 12 08-11-2006 04:56 AM
Sådan parse en tekstfil med \ 034 som område og \ 035 i slutningen af besked afgrænsningstegn? indianya Shell Programmering og 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 02-17-2008
sophiadun sophiadun is offline
Registreret Bruger
  
 

Join Date: Feb 2008
Stillinger: 10
parses gennem en tekstfil og output mange

Hej, alle

Inddatafilen mønster er som nedenfor:

Begynd Object1

txt1

ende
;


Begynd Object2

txt2

ende
;

...


Jeg ønsker at analysere dette en fil i Object1.txt, Obeject2.txt ... hver indeholder en erklæring fra 'Begynd' til ';', f.eks object1.txt indeholder:
Begynd object1

txt1

ende
;

---------------------------
Nogen tanker?
også, Questions
1. enhver AWK eller SED kan søge efter et mønster på tværs af mange linjer?
2. hvordan kan jeg output mange filer?
3. Skal jeg flytte denne tråd til "Shell Programmering og scripting"?

På forhånd tak
  #2 (permalink)  
Old 02-18-2008
Lakris Lakris is offline
Registreret Bruger
  
 

Join Date: oktober 2007
Posts: 246
Hvis du bruger bash Du kan prøve noget som dette, meget enkelt og sikkert masser af faldgruber. Men da Du er behandling kildekode der er syntaktiske regler, som kan forventes at blive fulgt. Det simpelthen kontrol for Begynd ord og spring filnavnet indeks, når stødt på.

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 "går ind" til ">>", når du er sikker på, at produktionen er hvad du ønsker. Det vil tilføje til en vilkårlig fil med dette navn, så du måske ønsker at fjerne ethvert objekt *. txt først.

/ Lakris
  #3 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registreret Bruger
  
 

Join Date: Feb 2008
Stillinger: 10
Thumbs up

Mange tak, Lakris. Jeg vil prøve det
  #4 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registreret Bruger
  
 

Join Date: Feb 2008
Stillinger: 10
Åh, hvad nu hvis input-filen som:
Begynd aaaaa
txt1
ende
;
Begynd bbbbbb
txt2
ende
;
Begynd cccc
txt3
ende
;
Begynd ddd
txt4
ende
;
  #5 (permalink)  
Old 02-18-2008
Lakris Lakris is offline
Registreret Bruger
  
 

Join Date: oktober 2007
Posts: 246
da den første Begin erklæring (aaaaa) ender i Object1.txt den anden (bbbbbb) i Object2.txt osv. Vil du have dem med navnet Object-aaaaa.txt, Object-bbbbbb.txt etc?
Tag et kig på den, mens læse linje konstruere. Du kan dele det op for at læse mere end en variabel ... eller Du kan behandle linje som en matrix.
  #6 (permalink)  
Old 02-18-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Indlæg: 2.926

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

  #7 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registreret Bruger
  
 

Join Date: Feb 2008
Stillinger: 10
Citat:
Oprindeligt Indsendt af Lakris View Post
da den første Begin erklæring (aaaaa) ender i Object1.txt den anden (bbbbbb) i Object2.txt osv. Vil du have dem med navnet Object-aaaaa.txt, Object-bbbbbb.txt etc?
Tag et kig på den, mens læse linje konstruere. Du kan dele det op for at læse mere end en variabel ... eller Du kan behandle linje som en matrix.
Nej, I dont have dem med navnet Object-aaaaa.txt. Det bør nævnes som aaaaa.txt


Tak
Closed Thread

Bogmærker

Tags
linux, ubuntu

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 05:25 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0