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 > Shell programmering og Skripting
.
google unix.com



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.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Parse et XML oppgavelisten til å lage hver task.xml fil MissI Shell programmering og Skripting 3 11-11-2008 02:20
kommentar og Uncomment enkelt oppgave av flere oppgaver madhusmita Shell programmering og Skripting 9 06-18-2008 09:42
Aritmetiske operatorer filda UNIX for Dummies Spørsmål og svar 0 06-13-2008 12:55
Kan jeg bruke wc-l med aritmetisk uttrykk? lalelle Shell programmering og Skripting 3 08-11-2007 06:44
aritmetikk i ksh Amon Shell programmering og Skripting 12 02-05-2007 02:43

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-11-2009
Marcelino marcelino is offline
Registrert bruker
  
 

Bli Date: Feb 2009
Innlegg: 4
sed eller awk for aritmetisk oppgave

Jeg har arkiv med denne type format

01.02.09 08:30
Bob
jill
mark

01.04.09 07:00
Bob
jill
mark
Tom

Jeg vil telle navnene etter dato / IME linje (08:30) 01.02.09, og legger til at antallet etter den tid som dette

01.02.09 08:30 3
01.04.09 07:00 4

Jeg bryr meg ikke om navnene etter telle slik at jeg kan forlate dem eller stripe det med sed hvis det forenkler prosessen. Jeg kunne også omdirigere utdataene av dato / tid og telle til andre filen hvis den gjør det enklere. Det eneste jeg virkelig trenger er dato / klokkeslett og tall på samme linje.

Hva er det beste verktøyet for å oppnå dette, og kan noen gi et eksempel?
  #2 (permalink)  
Old 02-11-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5122
Code:
nawk 'BEGIN {RS=FS=""} {print $1, NF-1}' myFile
  #3 (permalink)  
Old 02-11-2009
Marcelino marcelino is offline
Registrert bruker
  
 

Bli Date: Feb 2009
Innlegg: 4
Nesten det

Nice ...

Jeg måtte legge plass til "" og endre NF-1 til NF-2 for å få nøyaktige teller for alle linjer unntatt den siste og første oppføring. NF-1 gir riktig utgang for den siste linjen teller bare. Jeg har 9000 linjer, så jeg har det siste og første galt er ikke betydelig problem.

Det neste problemet er at produksjonen kun har tid i linjen som dette:

10:00 4
11:00 6

Jeg trenger dato i produksjon. Foreløpig ser gjennom nawk manualen for å finne ut hvordan du kan kombinere tid og dato i produksjon. Noen raske forslag? BTW, kjører nawk 1.3.3 av Ubuntu 8.10
  #4 (permalink)  
Old 02-11-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: juni 2007
Sted: Beijing Kina
Innlegg: 1086
Inngang:
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
utgang:
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

Sist endret av summer_cherry; 02-11-2009 kl 11:54..
  #5 (permalink)  
Old 02-12-2009
Marcelino marcelino is offline
Registrert bruker
  
 

Bli Date: Feb 2009
Innlegg: 4
summer_cherry awk og perl script fungerte perfekt som det er ... Jeg trenger å forstå hvordan du gjorde det ... takk ...
  #6 (permalink)  
Old 02-12-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5122
Sitat:
Originally Posted by Marcelino View Post
Nice ...

Jeg måtte legge plass til "" og endre NF-1 til NF-2 for å få nøyaktige teller for alle linjer unntatt den siste og første oppføring. NF-1 gir riktig utgang for den siste linjen teller bare. Jeg har 9000 linjer, så jeg har det siste og første galt er ikke betydelig problem.

Det neste problemet er at produksjonen kun har tid i linjen som dette:

10:00 4
11:00 6

Jeg trenger dato i produksjon. Foreløpig ser gjennom nawk manualen for å finne ut hvordan du kan kombinere tid og dato i produksjon. Noen raske forslag? BTW, kjører nawk 1.3.3 av Ubuntu 8.10
Hmmm .. veldig rart ...
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

utgang:
Code:
01.02.09 08:30 3
01.04.09 07:00 4
Ser fint til meg. Post din input-fil (eller en del av det) du bruker vB Code tags.
  #7 (permalink)  
Old 02-12-2009
Marcelino marcelino is offline
Registrert bruker
  
 

Bli Date: Feb 2009
Innlegg: 4
svar

Bruke de samme dataene du hadde eksempel, fikk jeg følgende:

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

Legge plass til ""

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

Skifte 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

Hugseliste

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 01:43.


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