The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for Dummies Spørsmål og svar
.
google unix.com



UNIX for Dummies Spørsmål og svar Hvis du er usikker på hvor du skal legge inn en UNIX-eller Linux-spørsmålet, legger den her. Alle UNIX og Linux newbies velkommen!

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Analysere gjennom fil og print output hjelp awk eller sed script cdfd123 Shell programmering og Skripting 4 03-03-2008 12:07
parse tekstfil craggm Shell programmering og Skripting 9 02-27-2007 02:13
parse tekstfil klick81 Shell programmering og Skripting 3 12-18-2006 12:04
Parse Tekstfil og sende post Amruta Pitkar UNIX for Dummies Spørsmål og svar 12 08-11-2006 04:56
Hvordan analysere en tekstfil med \ 034 i feltet og \ 035 i slutten av meldingen skilletegn? indianya Shell programmering og Skripting 1 08-26-2005 10:20

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øk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 02-17-2008
sophiadun sophiadun is offline
Registrert bruker
  
 

Bli Date: Feb 2008
Innlegg: 10
parse gjennom en tekstfil og utgang mange

Hei, alle sammen

Inndatafilen Mønsteret er som nedenfor:

Begynn Object1

txt1

slutt
;


Begynn Object2

txt2

slutt
;

...


Jeg ønsker å analysere denne filen til Object1.txt, Obeject2.txt ... hver inneholder en uttalelse fra "Beggin 'til'; ', f.eks object1.txt inneholder:
Begynn object1

txt1

slutt
;

---------------------------
Noen tanker?
også, Spørsmål
1. noen Awk eller SED kan søke etter et mønster på tvers av mange linjer?
2. hvordan kan jeg output mange filer?
3. Skal jeg flytte denne tråden til "Shell Programmering og Scripting"?

På forhånd takk
  #2 (permalink)  
Old 02-18-2008
Lakris Lakris is offline
Registrert bruker
  
 

Bli Dato: Oct 2007
Innlegg: 246
Hvis du bruker bash Du kan prøve noe sånt som dette, veldig enkelt og sikkert mange fallgruver. Men siden du behandler kildekoden er det syntaktiske regler som kan forventes å bli fulgt. Det bare kontrollerer for BEGIN ord og trinn filnavnet indeksen når oppstått.
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$
Endre "går inn" til ">>" når du er sikker på at produksjonen er det du ønsker. Det vil legge til en fil med det navnet, så kan være lurt å fjerne ethvert objekt *. txt først.

/ Lakris
  #3 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registrert bruker
  
 

Bli Date: Feb 2008
Innlegg: 10
Thumbs up

Tusen takk, Lakris. Jeg vil prøve den ut
  #4 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registrert bruker
  
 

Bli Date: Feb 2008
Innlegg: 10
Å, hva om inndatafilen slik:
Begynn aaaaa
txt1
slutt
;
Begynn bbbbbb
txt2
slutt
;
Begynn cccc
txt3
slutt
;
Begynn ddd
txt4
slutt
;
  #5 (permalink)  
Old 02-18-2008
Lakris Lakris is offline
Registrert bruker
  
 

Bli Dato: Oct 2007
Innlegg: 246
da den første Begin statement (aaaaa) ender opp i Object1.txt den andre (bbbbbb) i Object2.txt osv. Ønsker du å ha dem heter Object-aaaaa.txt, Objekt-bbbbbb.txt etc?
Ta en titt på mens leser linje konstruere. Du kan dele det opp å lese mer enn én variabel ... eller du kan behandle linje som en matrise.
  #6 (permalink)  
Old 02-18-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2876
Code:
awk '/^Begin/{close(f);f=$2".txt"}f{print>f}' input
  #7 (permalink)  
Old 02-18-2008
sophiadun sophiadun is offline
Registrert bruker
  
 

Bli Date: Feb 2008
Innlegg: 10
Sitat:
Originally Posted by Lakris View Post
da den første Begin statement (aaaaa) ender opp i Object1.txt den andre (bbbbbb) i Object2.txt osv. Ønsker du å ha dem heter Object-aaaaa.txt, Objekt-bbbbbb.txt etc?
Ta en titt på mens leser linje konstruere. Du kan dele det opp å lese mer enn én variabel ... eller du kan behandle linje som en matrise.
Nei, dont jeg vil ha dem heter Object-aaaaa.txt. Det bør være nevnt som aaaaa.txt


Takk
Closed Thread

Hugseliste

Tags
linux, ubuntu

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 08:36.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0