Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google-Website



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 10-04-2006
Registrierte Nutzer
 

Join Date: Sep 2006
Ort: SG
Beiträge: 353
Wie packen Daten zwischen 2 Strings?

Hi All,
Ich habe eine Text-Datei. Wie kann ich packen alle Daten zwischen "05T00NPQSMR1" und "****" mit awk? Bitte beachten Sie, dass die Textzeilen kann nicht festgelegt werden Text und Inhalt ist dynamisch. Pls help. Danke

Unten ist mein Code, wo $ LOT_SUFFIX ist mein Shell-Variable.

awk'/'"$ LOT_SUFFIX "'/,/ blah / '$ nfile_selected

Daten:

blah
xxx
yyy
************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************
xxxx
yyy
zzz
blah
blah
************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************


Erwartete Leistung:
************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************
xxxx
yyy
zzz
blah
blah
************************************
Sponsored Links
  #2 (permalink)  
Old 10-04-2006
vino's Avatar
vino vino is offline Forum Staff  
Supporter (in vino veritas)
 

Join Date: Feb 2005
Ort: Bangalore, Indien
Posts: 2814
Try this.

Code:
sed -n -e '/05T00NPQSMR1/,/^\**/p' input.txt

Else ist.

Code:
sed -n -e '/05T00NPQSMR1/,/^[*]*/p' input.txt

Im Moment habe ich nicht über den Zugang zu einem Unix-Terminal zu testen.
  #3 (permalink)  
Old 10-04-2006
Registrierte Nutzer
 

Join Date: Sep 2006
Ort: SG
Beiträge: 353
Zitat:
Zitat von vino
Try this.

Code:
sed -n -e '/05T00NPQSMR1/,/^\**/p' input.txt


Else ist.

Code:
sed -n -e '/05T00NPQSMR1/,/^[*]*/p' input.txt

Im Moment habe ich nicht über den Zugang zu einem Unix-Terminal zu testen.
Hi, die Ausgabe scheint weit von dem, was ich wollte. Siehe unten.

Leistung:
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
  #4 (permalink)  
Old 10-04-2006
Registrierte Nutzer
 

Join Date: Sep 2006
Posts: 2604
Alternative in Python:

Eingang:
blah
xxx
yyy
************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************
xxxx
yyy
zzz
blah
blah
************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************
xxxasdfljsdlfx
yyy; slkfd, s
zzzsdklfjsd
blasdflksdjh
blajaspofkspodf




Code:
number = []
all = open("test.txt").readlines()
for num,line in enumerate(all):
 	line = line.strip()
 	if "*" * 58 in line:
 		number.append(num)
 

for i in range(len(number)):
 	try:
 		print ''.join(all[ number[i]:number[i+1] ] )
 	except:
 		print ''.join(all[number[i]:])


Leistung:
************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************
xxxx
yyy
zzz
blah
blah

************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************
xxxasdfljsdlfx
yyy; slkfd, s
zzzsdklfjsd
blasdflksdjh
blajaspofkspodf

Zuletzt bearbeitet von ghostdog74; am 10-05-2006 04:34 AM..
  #5 (permalink)  
Old 10-04-2006
Registrierte Nutzer
 

Join Date: Jun 2006
Ort: Delhi, Indien
Beiträge: 92

Code:
awk -v pat1="05T00NPQSMR1" -v pat2="^[*]{3,}" '$0~pat1,$0~pat2' awtest

Wenn Sie Daten nur bis zum "** Tasc"


Code:
awk -v pat1="05T00NPQSMR1" -v pat2="^** tasC" '$0~pat1,$0~pat2' awtest

  #6 (permalink)  
Old 10-04-2006
anbu23 anbu23 is offline Forum Advisor  
Registrierte Nutzer
 

Join Date: März 2006
Ort: Bangalore, Indien
Beiträge: 1.567
Zitat:
blah
************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006

Code:
sed -n '/05T00NPQSMR1/,/*\{58\}/p' input

wo 58 ist Länge von mehr als Sternchen Linie
  #7 (permalink)  
Old 10-05-2006
Registrierte Nutzer
 

Join Date: Sep 2006
Ort: SG
Beiträge: 353
Hi Anbu,
Unten-Code:
awk-v pat1 \u003d "05T00NPQSMR1"-v pat2 \u003d"^[*]{ 3,) " '$ 0 ~ pat1, $ 0 ~ pat2" awtest

& Vish,
Unten-Code:
sed -n '/ 05T00NPQSMR1 /, / * \ (58 \) / p'-Eingang

Beide Ausgänge sind:
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************
xxxx
yyy
zzz
blah
blah
************************************************** ********
** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************


Aber was ich brauche ist:

** 05T00NPQSMR1 P98P2234 Dienstag 10 03 09:57:24 2006
** Dibid \u003d 1166 testerid \u003d 6
** Sample \u003d 100 0
** \u003d TASM MFMM xx xx xx
** \u003d Tasc MFMC xx xx xx
************************************
xxxx
yyy
zzz
blah
blah


Pls help. Danke

Zuletzt bearbeitet von Raynon; am 10-05-2006 04:21 AM..
Sponsored Links
Closed Thread

Lesezeichen

Tags
regex, reguläre Ausdrücke

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 Aus


Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Grab einer kleineren und größeren Wert Raynon Shell Programmierung und Scripting 3 10-11-2007 07:23 AM
Besorgen Sie sich die Zeile mit awk cdfd123 Shell Programmierung und Scripting 1 10-10-2007 09:21 AM
Such-und Grab-Daten aus einer großen Datei ting123 UNIX for Dummies Questions & Answers 1 06-06-2006 10:41 PM
Wie Zusammenfügen zweier Zeichenketten oder mehrere Zeichenketten zu einer Zeichenkette in der B-Shell? fontana Shell Programmierung und Scripting 2 08-26-2005 12:58 PM
Wie Besorgen Sie sich die letzte Datei n9ninchd UNIX for Dummies Questions & Answers 1 05-10-2001 05:31 PM



Alle Zeiten sind GMT -4. Es ist jetzt 06:00 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 Inhalt-Copyright © 1993-2010. Alle Rechte Reserved.Ad Management by RedTyger

Content Relevant URLs durch vBSEO 3.2.0