![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Pak een kleinere en grotere waarde | Raynon | Programmeren en Shell Scripting | 3 | 10-11-2007 07:23 |
| Pak de lijn met behulp van awk | cdfd123 | Programmeren en Shell Scripting | 1 | 10-10-2007 09:21 |
| zoeken en ophalen van gegevens uit een enorm bestand | ting123 | UNIX voor Dummies Questions & Answers | 1 | 06-06-2006 10:41 PM |
| Hoe aaneenschakelen twee snaren of meerdere strings in een string in de B-schaal? | fontana | Programmeren en Shell Scripting | 2 | 08-26-2005 12:58 |
| Hoe Pak het laatste bestand | n9ninchd | UNIX voor Dummies Questions & Answers | 1 | 05-10-2001 05:31 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Hoe pak gegevens tussen 2 strings?
Hi All,
Ik heb een tekst bestand hieronder. Hoe kan ik grijp alle gegevens tussen "05T00NPQSMR1" en "****" met behulp van awk? Pls er nota van dat de tekst lijnen kan niet worden vastgesteld en de tekst is dynamisch. Pls help. Bedankt Hieronder is mijn code waar $ LOT_SUFFIX is mijn shell variabele. awk'/'"$ LOT_SUFFIX "'/,/ blah / '$ nfile_selected Gegevens: blah xxx yyy ************************************************** ******** ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ xxxx yyy zzz blah blah ************************************************** ******** ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ Verwachte output: ************************************************** ******** ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ xxxx yyy zzz blah blah ************************************ |
|
||||
|
Citaat:
Output: ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 |
|
||||
|
Alternatief in Python: Ingang: blah xxx yyy ************************************************** ******** ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ xxxx yyy zzz blah blah ************************************************** ******** ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d 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]:])
Output: ************************************************** ******** ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ xxxx yyy zzz blah blah ************************************************** ******** ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ xxxasdfljsdlfx yyy; slkfd; s zzzsdklfjsd blasdflksdjh blajaspofkspodf Laatst gewijzigd door ghostdog74; op 10.05.2006 04:34.. |
|
||||
|
Code:
awk -v pat1="05T00NPQSMR1" -v pat2="^[*]{3,}" '$0~pat1,$0~pat2' awtest
Als u gegevens alleen tot "** Italiaanse TASC" Code:
awk -v pat1="05T00NPQSMR1" -v pat2="^** tasC" '$0~pat1,$0~pat2' awtest |
|
||||
|
Citaat:
Code:
sed -n '/05T00NPQSMR1/,/*\{58\}/p' input
waar 58 is de lengte van bovenstaande sterretje lijn |
|
||||
|
Hi Anbu,
Onderstaande code: awk-v pat1 \u003d "05T00NPQSMR1"-v pat2 \u003d"^[*]{ 3,) "" $ 0 ~ pat1, $ 0 ~ pat2 'awtest & Vish, Onderstaande code: sed -n '/ 05T00NPQSMR1 /, / * \ (58 \) / p' input Beide resultaten zijn: ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ xxxx yyy zzz blah blah ************************************************** ******** ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ Maar wat ik nodig heb is: ** 05T00NPQSMR1 P98P2234 dinsdag 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Steekproef \u003d 100 0 ** TasM \u003d MFMM xx xx xx ** Italiaanse TASC MFMC \u003d xx xx xx ************************************ xxxx yyy zzz blah blah Pls help. Bedankt Laatst gewijzigd door Raynon; op 10.05.2006 04:21.. |
![]() |
| Bladwijzers |
| Labels |
| regex, reguliere expressies |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|