The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

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
Skicka e-post från adresslistan och Ämnesöversikt paulds UNIX for Dummies Frågor & Svar 2 06-27-2008 10:11
perl skript till lista filnamn som inte innehåller viss string royalibrahim Shell-programmering och Skript 21 04-22-2008 01:55
Hur man annonserar och kopiera filer som innehåller en sträng redlotus72 UNIX for Dummies Frågor & Svar 11 09-28-2007 11:58
Sök på ett snöre från listan över indatafiler sivakumarvenkat UNIX for Dummies Frågor & Svar 2 03-08-2006 06:08
Extrahera String från en lista odogbolu98 Shell-programmering och Skript 4 06-01-2002 02:48

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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 08-13-2008
Pep Puigvert Pep Puigvert is offline
Registered User
  
 

Join Date: Aug 2008
Inlägg: 3
Lightbulb räkna en lista med snöre i en lista med txt-filer

Hej där!

Jag har 150 txt filer som heter chunk1, chunk2, ........., chunk150. Jag har ytterligare en fil som heter string.txt med mer än 1000 unika strängar, hus, hund, katt ... Jag vill veta vilket kommando jag ska använda för att räkna hur många gånger varje sträng visas i 150 filer.

Jag har försökt med en grep-c hund del * men då får jag räkna med alla filer och jag måste göra det separat för var och en av strängarna.

Den idealiska lösningen skulle vara en effekt av att säga:

hund 45
katt 69
hus 92
sång 45

Tack på förhand.

Med vänlig hälsning,
Pep
  #2 (permalänk)  
Old 08-13-2008
jim McNamara jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: februari 2004
Ort: NM
Inlägg: 5.721
Kod:
cat chunk* > tmp.tmp
awk '   FILENAME=="string.txt" { arr[$0]=0 }
        FILENAME=="tmp.tmp"  { for(i=1; i<=NF; i++) {
             if ($i in arr) {arr[$i]++} 
        }}        
        END { for (i in arr) { print i, arr[i]}} ' string.txt tmp.tmp
  #3 (permalänk)  
Old 08-14-2008
Pep Puigvert Pep Puigvert is offline
Registered User
  
 

Join Date: Aug 2008
Inlägg: 3
Jim,

Tack så mycket för snabba svar, men när man kör det fick jag följande fel.

awk: syntaxfel nära linje 3
awk: olagligt uttalande nära linje 3
awk: syntaxfel nära linjen 5
awk: bailing ut nära linje 5

Vet du om det är något fel?
Tack
Pep
  #4 (permalänk)  
Old 08-14-2008
drl's Avatar
varselljus drl is offline Forum Advisor  
Registered User
  
 

Join Date: april 2007
Ort: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Inlägg: 706
Hej.

De flesta versioner av grep kan hantera ett ärende av mönster, så att standarden * nix utlities kan användas:
Kod:
#!/bin/bash -

# @(#) s3       Demonstrate string count total from files.

echo
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version =o $(_eat $0 $1) grep sort uniq
set -o nounset
echo

echo " strings file:"
cat strings

echo
echo " data files" data* ":"
cat -n data*

echo
echo " Results:"
grep -h -f strings data* |
sort |
uniq -c

exit 0
Produktion:
Kod:
% ./s3

(Versions displayed with local utility "version")
Linux 2.6.11-x1
GNU bash 2.05b.0
grep (GNU grep) 2.5.1
sort (coreutils) 5.2.1
uniq (coreutils) 5.2.1

 strings file:
dog
horse
cat

 data files data1 data2 data3 data4 :
     1  File 1
     2  monkey
     3  cat
     4  dog
     5  dog
     6  File 2
     7  horse
     8  sawhorse
     9  Files 3
    10  cat
    11  horse
    12  witch
    13  seven
    14  File 4
    15  spider
    16  hoarse
    17  horse
    18  horse
    19  horse
    20  cat

 Results:
      3 cat
      2 dog
      5 horse
      1 sawhorse
Filerna är filtrerad för de poster som innehåller strängar av intresse. Sedan, för att räkna med UniqMåste vi sortera resultatet.

Om du behöver bättre filtrering, kan du behöva ändra mönster i strängar fil, eller - i vissa versioner av grep - Använd "ordet" option "-w".

Justera vid behov för din miljö enligt din man-sidor ... Skål, varselljus
  #5 (permalänk)  
Old 08-15-2008
Pep Puigvert Pep Puigvert is offline
Registered User
  
 

Join Date: Aug 2008
Inlägg: 3
Tack det fungerar nu!

Med vänlig hälsning,

Pep
Closed Thread

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 04:20.


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