The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Parse et XML opgaveliste til at skabe hver task.xml fil MissI Shell Programmering og Scripting 3 11-11-2008 02:20 PM
kommentere og Uncomment enkelt opgave ud af flere opgave madhusmita Shell Programmering og Scripting 9 06-18-2008 10:42 AM
Aritmetiske Luftfartsforetagender filda UNIX for dummyer Spørgsmål & svar 0 06-13-2008 01:55 AM
Kan jeg bruge wc-l med aritmetiske udtryk? lalelle Shell Programmering og Scripting 3 08-11-2007 07:44 PM
aritmetiske i ksh Amon Shell Programmering og Scripting 12 02-05-2007 02:43 AM

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-11-2009
Marcelino marcelino is offline
Registreret Bruger
  
 

Join Date: Feb 2009
Stillinger: 4
sed eller awk for aritmetiske opgave

Jeg har fil med denne type af format

01.02.09 08:30
Bob
Jill
varemærke

01.04.09 07:00
Bob
Jill
varemærke
Tom

Jeg vil tælle navne efter den dato / ime line (01.02.09 08:30), og tilføjer, at antallet efter det tidspunkt som dette

01.02.09 08:30 3
01.04.09 07:00 4

Jeg bryder mig ikke om navne, efter at tælle, så jeg kan forlade dem eller fratage den ud med sed hvis det forenkler processen. Jeg kunne også omdirigere outputtet af dato / tid og tælle til anden fil, hvis den gør det enklere. Det eneste jeg virkelig brug for, er den dato, klokkeslæt og nummer på samme linje.

Hvad er det bedste redskab til at opnå dette, og nogen, der kan give et eksempel?
  #2 (permalink)  
Old 02-11-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Beliggenhed: Boston, MA
Indlæg: 5.131

Code:
nawk 'BEGIN {RS=FS=""} {print $1, NF-1}' myFile

  #3 (permalink)  
Old 02-11-2009
Marcelino marcelino is offline
Registreret Bruger
  
 

Join Date: Feb 2009
Stillinger: 4
Næsten det

Nice ...

Jeg var nødt til at tilføje plads til at "" og ændre NF-1 til NF-2 for at få nøjagtigt tal for alle linjer undtagen den sidste og første indrejse. NF-1 giver det korrekte output for den sidste linje tæller kun. Jeg har 9.000 linier, så jeg har den sidste og første fejl er ikke vigtigt spørgsmål.

Det næste problem er, at produktionen kun har tid i den linje som denne:

10:00 4
11:00 6

Jeg har brug for den dato i produktionen. I øjeblikket søger gennem nawk manuelle at finde ud af, hvordan man kombinerer tid og dato i output. Enhver hurtig forslag? BTW og løber nawk 1.3.3 fra Ubuntu 8.10
  #4 (permalink)  
Old 02-11-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Indlæg: 1.092
input:

Code:
01.02.09 08:30
bob
jill
mark 

01.04.09 07:00
bob 
jill 
mark
tom

01.02.09 09:30
bob
jill
mark 
hj
gh
fm

01.04.09 10:00
bob 
jill 
mark
tom
aaa
bbb
ccc

output:

Code:
01.02.09 08:30 3
01.04.09 07:00 4
01.02.09 09:30 6
01.04.09 10:00 7

kode:

Code:
#!/usr/bin/perl
$/="\n\n";
open FH,"<a.txt";
while(<FH>){
	my @temp=split("\n",$_);
	print $temp[0]," ",$#temp,"\n";
}


Code:
awk '/[0-9]*\.[0-9]*\.[0-9]* [0-9][0-9]:[0-9][0-9]/{
	a=$0
	next
}
/^ *$/{
	print a" "n
	n=0
	next
}
{
 n++
}
' a.txt


Senest redigeret af summer_cherry; 02-11-2009 kl 11:54 PM..
  #5 (permalink)  
Old 02-12-2009
Marcelino marcelino is offline
Registreret Bruger
  
 

Join Date: Feb 2009
Stillinger: 4
summer_cherry awk og perl scriptet virkede perfekt som de er ... Jeg skal bare forstå, hvordan du gjorde det ... tak ...
  #6 (permalink)  
Old 02-12-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Beliggenhed: Boston, MA
Indlæg: 5.131
Citat:
Oprindeligt Indsendt af Marcelino View Post
Nice ...

Jeg var nødt til at tilføje plads til at "" og ændre NF-1 til NF-2 for at få nøjagtigt tal for alle linjer undtagen den sidste og første indrejse. NF-1 giver det korrekte output for den sidste linje tæller kun. Jeg har 9.000 linier, så jeg har den sidste og første fejl er ikke vigtigt spørgsmål.

Det næste problem er, at produktionen kun har tid i den linje som denne:

10:00 4
11:00 6

Jeg har brug for den dato i produktionen. I øjeblikket søger gennem nawk manuelle at finde ud af, hvordan man kombinerer tid og dato i output. Enhver hurtig forslag? BTW og løber nawk 1.3.3 fra Ubuntu 8.10
Hmmm .. meget mærkeligt ...
mar.txt:

Code:
01.02.09 08:30
bob
jill
mark

01.04.09 07:00
bob
jill
mark
tom

nawk 'BEGIN (RS \u003d FS \u003d "") (print $ 1, NF-1)' mar.txt

output:

Code:
01.02.09 08:30 3
01.04.09 07:00 4

Ser fint til mig. Skriv dit input fil (eller en del af det) ved hjælp af vB kode tags.
  #7 (permalink)  
Old 02-12-2009
Marcelino marcelino is offline
Registreret Bruger
  
 

Join Date: Feb 2009
Stillinger: 4
svar

Bruger de samme data, du havde eksempel, fik jeg følgende:

nawk 'BEGIN (RS \u003d FS \u003d "") (print $ 1, NF-1)' data.txt
0 27
0 31

Tilføjelse af plads til at ""

$ Nawk 'BEGIN (RS \u003d FS \u003d "") (print $ 1, NF-1)' data.txt
01.02.09 0
08:30 4
07:00 4

Skift til NF-2

$ Nawk 'BEGIN (RS \u003d FS \u003d "") (print $ 1, NF-2)' data.txt
01.02.09 -1
08:30 3
07:00 3
Closed Thread

Bogmærker

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 04:32 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