The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Counting sträng med en variabel Doppa Shell-programmering och Skript 5 10-22-2008 09:19
möjlighet grep för att räkna exakta ord? Maddy Linux 3 06-17-2008 09:55
Behöver shell / sed script för grep + string ersättning pranavagarwal Shell-programmering och Skript 3 11-15-2007 06:35
Counting max längd av strängen ganesh123 Shell-programmering och Skript 2 02-23-2007 04:27
Counting mönster i ett skal string kevin80 UNIX for Dummies Frågor & Svar 3 06-03-2003 10:34

Reply
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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 06-24-2009
scarletsupra scarletsupra is offline
Registered User
  
 

Join Date: juni 2009
Inlägg: 1
grep-c skriptet räknar string två gånger istället för en gång?

Jag försökte detta script för att få räkna med förekomsten av en sträng i filer.
Jag har flera filer i en katalog jag kommer att använda den här.
Alla filnamnen börjar "invALL.06" Skriptet fungerar, förutom att det räknas två gånger för varje instans av "Fakturainformation totalt.
Om det finns 5 förekomster av "Fakturainformation Totalt" i en fil den återgår 10.
Jag har försökt det med grep-cn och grep-cx. Nej bättre.
Jag har försökt strängen "Sista sidan" samma resultat.
Jag testade genom att söka efter ordet "fortsatt" i filer. Det räknas dem korrekt. Har det att göra med grep-c på mer än ett ord string?
Tack.

Script
för jag i invALL.06 *
göra

count \u003d "grep-c" Fakturainformation totalt $ i "

echo $ i "har" $ count "Faktura Totalt"

gjord


Utgångar:
invALL.0605 har 870 Faktura Totalt
invALL.0606 har 936 Faktura Totalt


Filen den söker ser ut som nedan. Det har bara "Faktura Totalt" i slutet av varje faktura avsnitt.

& k2G & f504y4X (8U (s0p12.00h0s1b4102T & l6D & k10H & k2G & f504y4X (8U (s0p12.00h0s1b4102T & l6D & k10H & a0h60V

Faktura
000000 06/19/09 84888-00
25070 ZZ joe 1
06/19/09 14:40
Sälj till mig co namn LLC (MD)
123 din gata DR 777 min DRIVE
SUITE z
din stad, VA 24551 Irvington, MD 21061

sälja till mig
123 din gata DR 555-555-1212 Net 30 Dagar 07/19/09
yourtown, VA 24551 sålda till er, L John 06/19/09


För
denna kund.
håll för 6/17/09 leverans
1 ED51 1 0 1 SHT 2,68 2,68
15 #
2 LA4 5 0 5 respektive 8,00 90,00
040
3 EW4 5 0 5 sht 7.35 36.75
4mm
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
Delsumma för icke beskattningsbara: 89.43

3 Lines Totalt Antal Skickad Totalt 11 Totalt 89,43
Bränsle Surchrg 3,50
Faktura Totalt 92,93








Sista sidan
& k2G & f504y4X (8U (s0p12.00h0s1b4102T & l6D & k10H & k2G & f504y4X (8U (s0p12.00h0s1b4102T & l6D & k10H & k2G & f504y4X (8U (s0p12.00h0s1b4102T & l6D & k10H & k2G & f504y4X (8U (s0p12.00h0s1b4102T & l6D & k10H & a0 h60V

Faktura
000000 06/19/09 848700-01
25070 ZZ Ron 1
06/19/09 14:40
selltome isell, LLC (MD)
123 sellme 123 wesell DRIVE
SUITE z
pinetree, VA 24000 pinetree, az 12121

sellto mig
123 myroad 222-555-1212 Netto 30 dagar 07/19/09
träd, VA 24000 soldfromme, jjones 06/19/09


för
denna kund.
5 YMA 2 0 2 respektive 3,65 7,30
A24
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
Delsumma för icke beskattningsbara: 7,30

1 Lines Totalt Antal Skickad Totalt 2 Totalt 7,30
Faktura Totalt 7,30











Sista sidan
  #2 (permalänk)  
Old 06-24-2009
jim McNamara jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: februari 2004
Ort: NM
Inlägg: 5.785

Kod:
for i in invALL.06* 
do 
   grep -c '^Invoice Total' $i  | read count
   echo "$i  has  $count Invoice Totals" 
done

Prova det.
  #3 (permalänk)  
Old 06-24-2009
metyl methyl is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 1184
Det ser ut som en formaterad skriva ut filen komplett med skrivaren kontroll koder.
Vi kan behöva konvertera kontroll tecken till text innan du kör en textuell sökning. Dessutom har vi vanligtvis processen en öppen slutade filförteckning i "medan" loop som också stoppar script bryta om filnamn innehåller mellanslag.
Försöka


Kod:
ls -1d invALL.06* | while read FILENAME
do
       # sed -n l (character ell) converts control characters to text 
       count=`sed -n l "${FILENAME}" | grep -c 'Invoice Total'` 
       echo "${FILENAME} has ${count} Invoice Totals" 
done

Jag noterar att jim McNamara har begränsat sökningen till rader som börjar "Faktura totalt" som redan har åtgärdat problemet! Jag kan djupdykning för djupt.

Senast redigerad av metyl; 06-24-2009 vid 07:04.. Orsak: stavfel
Reply

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 11:13.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0