The UNIX and Linux Forums  

Go Back   Die UNIX-und Linux-Foren > Top Foren > UNIX for Dummies Questions & Answers
.
Google unix.com



UNIX for Dummies Questions & Answers Wenn Sie nicht sicher sind, wo Sie eine UNIX-oder Linux-Frage, post it here. Alle UNIX-und Linux-Anfänger willkommen!

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Senden von E-Mail-Adresse aus, und unter Liste paulds UNIX for Dummies Questions & Answers 2 06-27-2008 11:11 AM
Perl-Skript, um die Dateinamen, die nicht gegebenen Zeichenkette royalibrahim Shell Programmierung und Scripting 21 04-22-2008 02:55 PM
Wie in die Liste und kopieren Sie die Dateien mit einem String redlotus72 UNIX for Dummies Questions & Answers 11 09-28-2007 12:58 PM
Suche einen String aus der Liste der Eingabedateien sivakumarvenkat UNIX for Dummies Questions & Answers 2 03-08-2006 06:08 PM
Extrahieren von String aus einer Liste odogbolu98 Shell Programmierung und Scripting 4 06-01-2002 03:48 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 08-13-2008
Pep Puigvert Pep Puigvert is offline
Registrierte Nutzer
  
 

Join Date: Aug 2008
Beiträge: 3
Lightbulb Zählen eine Liste von Zeichenketten in einer Liste von txt-Dateien

Hi there!

Ich habe 150 txt Dateien mit den Namen chunk1, chunk2, ........., chunk150. Ich habe eine zweite Datei mit dem Namen string.txt mit mehr als 1000 einzigartige Streicher, Haus, Hund, Katze ... Ich möchte wissen, welches Kommando ich sollte zu zählen, wie oft jede Saite in der 150 Dateien.

Ich habe versucht mit einem grep-c Hund chunk * aber dann bekomme ich die Anzahl der Dateien und ich habe zu tun, sie separat für jede der Saiten.

Die ideale Lösung wäre eine Ausgabe sagen:

Hund 45
CAT 69
Haus 92
Lied 45

Vielen Dank im Voraus.

Mit freundlichen Grüßen,
Pep
  #2 (permalink)  
Old 08-13-2008
Jim McNamara jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: Feb 2004
Ort: NM
Posts: 5811

Code:
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 (permalink)  
Old 08-14-2008
Pep Puigvert Pep Puigvert is offline
Registrierte Nutzer
  
 

Join Date: Aug 2008
Beiträge: 3
Jim,

Vielen Dank für die schnelle Antwort, aber, wenn es ich die folgende Fehlermeldung.

awk: Syntaxfehler in der Nähe der Linie 3
awk: illegale Erklärung in der Nähe der Linie 3
awk: Syntaxfehler in der Nähe von Linie 5
awk: Rettung in der Nähe von Linie 5

Wissen Sie, ob etwas nicht in Ordnung ist?
Danke
Pep
  #4 (permalink)  
Old 08-14-2008
drl's Avatar
DRL drl is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Apr 2007
Ort: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Beiträge: 717
Hi.

Die meisten Versionen von grep kann eine Datei von Mustern, so dass die Standard-* nix-utlities können verwendet werden:

Code:
#!/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

Herstellung:

Code:
% ./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

Die Dateien werden gefiltert für die Zeilen, die Saiten des Interesses. Dann, um zu zählen, mit uniq, Müssen wir das Ergebnis zu sortieren.

Wenn Sie brauchen eine bessere Filterung, die Sie benötigen, um die Muster in die Saiten Datei, oder - in einigen Versionen von grep - Verwenden Sie die "Word"-Option "-w".

Passen Sie bei Bedarf für Ihre Umgebung nach Ihren Mann Seiten ... cheers, DRL
  #5 (permalink)  
Old 08-15-2008
Pep Puigvert Pep Puigvert is offline
Registrierte Nutzer
  
 

Join Date: Aug 2008
Beiträge: 3
Vielen Dank, es funktioniert jetzt!

Mit freundlichen Grüßen,

Pep
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 10:46 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0