Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
Google Site



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 07-12-2008
Registrert bruker
 

Bli Dato: juni 2008
Innlegg: 13
hvordan å skille kolonnene med en fil i perl uten spesifikk skilletegn

Hi everybody,
Denne gangen Jeg har en sak i perl.
Jeg må lage kommaseparert fil ved hjelp av følgende type informasjon. Problemet er søylene ikke har noen spesifikke skilletegn. Så mens du bruker splitt Jeg får forskjellig verdi. Noen der det er plass (S) og noen hvor det er kategorien (e). i noen tilfeller ikke jeg har verdier under enkelte kolonne og disse er også fylt med kategorien (e) og / eller plass (r).
Revsn: Dato Hvem SID Beskrivelse av endring
09-Jul-01 Amiya 01-04Jul01 legge setdescriptor snarveier
02-Aug-99 RathA chk inkludere 1.linje
fjerne per VandJ
06-Jan-98 DASP data foreldet ...
02-Jul-97 Gupts legge ddmm for fullstendighet

Jeg vil ha min utgang som
09-Jul-01, ,01 Amiya-04Jul01, legger setdescriptor snarveier
02-Aug-99, RathA ,----, chk inkludere 1.linje fjerne VandJ (hvis linjen har kun beskrivelse, legg til forrige linje)
06-Jan-98, DASP ,----, data foreldet ...
02-Jul-97, Gupts ,----, legge ddmm for fullstendighet
Takk på forhånd ....
Sponsede lenker
  #2 (permalink)  
Old 07-12-2008
Moderator
 

Bli Date: Feb 2007
Bosted: Nederland
Innlegg: 4962
Prøv dette:

Code:
awk '
NR>1 && /^[0-9/{printf("\n%s",$0);next}
{printf(" %s",$0)}
END{print ""}
' file

Hilsen
  #3 (permalink)  
Old 07-12-2008
Registrert bruker
 

Bli Dato: juni 2008
Innlegg: 13
Jeg får syntaks FEIL mens kjøre denne kommandoen som nedenfor
awk: newline karakter klasse nær linje 1
awk: syntaksfeil nær linje 2
awk: bailing ut nær linje 2
  #4 (permalink)  
Old 07-12-2008
Moderator
 

Bli Date: Feb 2007
Bosted: Nederland
Innlegg: 4962
Bruk nawk, gawk eller / usr/xpg4/bin/awk på Solaris.

Hilsen
  #5 (permalink)  
Old 07-12-2008
 

Bli Dato: mai 2008
Beliggenhet: Sydney, Australia
Innlegg: 1009
Prøv dette:


Code:
perl -ne '
	if (/^[0-9]{2}-[[:alpha:]]{3}-[0-9]{2}/) {
		if (defined($prev)) { printf($prev . "\n"); }
		($f1, $f2, $f3, undef, $f5) = m/([0-9]{2}-[[:alpha:]]{3}-[0-9]{2})[[:blank:]]+([[:alnum:]]+)[[:blank:]]+(([0-9]{2}-)?[0-9]{2}-?[[:alpha:]]{3}-?[0-9]{2}[[:blank:]])?(.*)/;
		if ($f3 == "") { $f3="----" }
		$prev = join(",",$f1,$f2,$f3,$f5);
	} else {
		$prev .= " " . chomp($_);
	}
	END { printf($prev . "\n"); }
' inputfile > outputfile

  #6 (permalink)  
Old 07-12-2008
Registrert bruker
 

Bli Date: Jan 2008
Innlegg: 729
for å hjelpe en pålitelig løsning, må du definere hva dette feltet kan inneholde:

01-04Jul01

Det er alltid det samme format, eller kan det være annerledes dessuten bare ikke eksisterende? Har det alltid samsvarer med datoen på begynnelsen av linjen?
  #7 (permalink)  
Old 07-12-2008
Registrert bruker
 

Bli Dato: Sep 2006
Innlegg: 2604

Code:
awk '{p=c; c=$0}; !/^[0-9]+/{print p,c;next}1' file

perl:

Code:
while (<>) {
    chomp; 
    $p = $c; $c = $_;
    if (!/^[0-9]+/) { print "$p $c\n" ; next ; }
    print $_ . "\n";
}


Sist endret av ghostdog74; 07-13-2008 kl 12:12..
Sponsede lenker
Closed Thread

Hugseliste

Tags
solaris

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 Av


Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Hvordan fjerne bestemte linjer fra filen med perl dipakg Shell programmering og Skripting 4 06-11-2008 03:45
Perl: Legge til kolonner i CSV-fil med informasjon i hvert dolo21taf Shell programmering og Skripting 1 03-05-2008 02:52
bytte plass med skilletegn i hele filen-perl meghana Shell programmering og Skripting 11 02-19-2008 09:35
cutting kolonner hvis skilletegn har mer enn ett charecter mahabunta UNIX for Dummies Spørsmål og svar 9 09-14-2006 09:23
Slette bestemte kolonner fra en fil premar Shell programmering og Skripting 11 02-14-2006 07:02



Alle klokkeslett er GMT -4. Nå er klokken 07:27.


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-2010. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0