Shell-Script und Pipes


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Shell-Script und Pipes
# 1  
Old 10-21-2006
Question Shell-Script und Pipes

Hi, beginne gerade mich in der UNIX Welt zu recht zu finden : habe nun folgendes Anliegen, hoffe ihr könnt mir helfen (ist sicher trival für euch, sorry dafür -) )

Ich möchte mir ein kleines Shell-Script schreiben , welches mir dateien eines bestimmten verzeichnisses anhand der Anzahl der enthaltenen Wörter vergeleicht und anschließend die Dateien sortiert ausgibt.

Ich weiß der befehl wc -w zählt die Wörter einer Datei und der Befehl sort sortiert

Problem : Ich muss ja nun erstmal die dateien anhand der Anzahl der Wörter vergelichen, sprich die Wörter zählen : wc -w datei1 datei1 : zählt die Wörter in datei1 und ind datei2 und gibt ergebnis aus ; soweit so gut : ich wollte nun für mein verzeichnis folgendes probieren : find <verzeichnis> -name *.txt | wc -w ; bekomme als Ergebnis aber leider nur die Anzahl der dateien raus und nicht die Anzahl der Wörter in dieser : es werden 3 Dateien gefunden und gelistet und diese drei Dateien wollte ich nun an die Standardeingabe von wc reichen, damit wc entsprechend arbeitet ( wie wc -w dateie1 datei2) das tut die shell offensichtlich nicht : wc zählt die Anzahl der dateien ????????

Wiegesagt bin neu , bin für jeden Tipp dankbar,

lieben Gruß

Anja
# 2  
Old 10-21-2006
Quote:
Originally Posted by anja_22
Hi, beginne gerade mich in der UNIX Welt zu recht zu finden : habe nun folgendes Anliegen, hoffe ihr könnt mir helfen (ist sicher trival für euch, sorry dafür -) )

Ich möchte mir ein kleines Shell-Script schreiben , welches mir dateien eines bestimmten verzeichnisses anhand der Anzahl der enthaltenen Wörter vergeleicht und anschließend die Dateien sortiert ausgibt.

Ich weiß der befehl wc -w zählt die Wörter einer Datei und der Befehl sort sortiert

Problem : Ich muss ja nun erstmal die dateien anhand der Anzahl der Wörter vergelichen, sprich die Wörter zählen : wc -w datei1 datei1 : zählt die Wörter in datei1 und ind datei2 und gibt ergebnis aus ; soweit so gut : ich wollte nun für mein verzeichnis folgendes probieren : find <verzeichnis> -name *.txt | wc -w ; bekomme als Ergebnis aber leider nur die Anzahl der dateien raus und nicht die Anzahl der Wörter in dieser : es werden 3 Dateien gefunden und gelistet und diese drei Dateien wollte ich nun an die Standardeingabe von wc reichen, damit wc entsprechend arbeitet ( wie wc -w dateie1 datei2) das tut die shell offensichtlich nicht : wc zählt die Anzahl der dateien ????????

Wiegesagt bin neu , bin für jeden Tipp dankbar,

lieben Gruß

Anja

Hi Anja

Ich versuchte, zu übersetzen, was u mit google schrieb, aber noch, das es bilden doesnt Menge von der Richtung... du sie auf englisch versuchen und bekanntgeben kann? Die übersetzung ist unten zugunsten jedermann, das englisch spricht und es heraus darstellen kann.

(For english speakers,the above is the translation of what is below in english, for anja's sake)
I tried translating what u wrote with google, but still it doesnt make a lot of sense... can you try and post it in english? The translation is below for the benefit of anyone who knows english and can figure it out.

Rear one, begins to find straight me in the UNIX world rightfully: now if the following request has, hope you can me help (is safe trival for you, sorry for it -)) I would like to be written a small shell Script, which me files of a certain listing on the basis the number of contained words gel-calibrated and afterwards sorted spends the files. I know the instruction wc - w counts the words of a file and the instruction sort sorted Problem: I must now first times the files on the basis the number of words vergelichen, speak the words to count: wc - w datei1 datei1: and ind datei2 counts the words in datei1 and spends result; so far so well: I wanted to try now for my listing the following: find <verzeichnis> - name *.txt | wc - w; get as result however unfortunately only the number of files raus and not the number of words in this: 3 files are found and listed and these three files wanted to be enough I now to the standard input of wc, so that wc works accordingly (like wc - w dateie1 datei2) does the shell obviously not: wc the number of files counts???????? Cradle-said are new, are for everyone tap gratefully, love greeting Anja


Arggggggggghhhhhhhhh!!!!!!!!!
# 3  
Old 10-21-2006
Quote:
Originally Posted by napoloyan
(For english speakers,the above is the translation of what is below in english, for anja's sake)
I tried translating what u wrote with google, but still it doesnt make a lot of sense... can you try and post it in english? The translation is below for the benefit of anyone who knows english and can figure it out.
Don't try too hard for a thing which is against the rules of these forums. All posters are supposed to post in English, if OP doesn't know English, he should look for some other available internet resources, we don't entertain non-English queries here and you are requested to not to encourage non-English posters.

Regards,
Tayyab
# 4  
Old 10-24-2006
Since I'm feeling nice, here's a translation:

Quote:
Hi, beginne gerade mich in der UNIX Welt zu recht zu finden : habe nun folgendes Anliegen, hoffe ihr könnt mir helfen (ist sicher trival für euch, sorry dafür -) )
Hi, I'm just starting to find my way around the UNIX world and now have the following problem, I hope you guys can help (its most probably trivial for you and I'm sorry for that)

Quote:
Ich möchte mir ein kleines Shell-Script schreiben , welches mir dateien eines bestimmten verzeichnisses anhand der Anzahl der enthaltenen Wörter vergeleicht und anschließend die Dateien sortiert ausgibt.
I want to write a small Shell-Script which compares my files in a particular folder and then sorts it out according to the number of words contained.

Quote:
Ich weiß der befehl wc -w zählt die Wörter einer Datei und der Befehl sort sortiert
I know the command 'wc -w' counts the number of words in a file and the command 'sort', sorts the files

Quote:
Problem : Ich muss ja nun erstmal die dateien anhand der Anzahl der Wörter vergelichen, sprich die Wörter zählen : wc -w datei1 datei1 : zählt die Wörter in datei1 und ind datei2 und gibt ergebnis aus ; soweit so gut : ich wollte nun für mein verzeichnis folgendes probieren : find <verzeichnis> -name *.txt | wc -w ; bekomme als Ergebnis aber leider nur die Anzahl der dateien raus und nicht die Anzahl der Wörter in dieser : es werden 3 Dateien gefunden und gelistet und diese drei Dateien wollte ich nun an die Standardeingabe von wc reichen, damit wc entsprechend arbeitet ( wie wc -w dateie1 datei2) das tut die shell offensichtlich nicht : wc zählt die Anzahl der dateien ????????
My Problem: I have to first compare the files for number of words: e.g. 'wc -w file1 file2' compares the number of words in file1 and file2 and gives me the result. so far so good. Then i want to try the following for my folder: 'find <folder> -name *.txt| wc -w'

This unfortunately gives me the number of files, not the number of words in these files. So, if 3 files are found and listed, I want to now pass these 3 as input to wc so that wc can do its magic on them (e.g. wc -w file1 file2). For some reason the shell doesn't do this and wc counts the number of files????

Quote:
Wiegesagt bin neu , bin für jeden Tipp dankbar
Like I said, I'm new and am thankful for every tip

Phew Smilie
# 5  
Old 10-24-2006
Code:
for file in $(find <directory> -name '*.txt'); do
  wc -w $file
done

 
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Read workstation list from file und run command

Hi, how do I read in a file which includes a list of workstations and then run a command for each workstation ? I am unclear which command to use to read in , or is this not possible ? Thanks, (3 Replies)
Discussion started by: manni2
3 Replies

2. Shell Programming and Scripting

Suchen und Ersetzen mit AWK

Hallo, ich habe mir mit meinen dürftigen Programmierkenntnissen ein Script zusammengebastelt über das ich in einem bestimmten Odner mit AWK alle Dateien eines Verzeichnis durchsuche und bestimmte Bezeichungen aller Dateien ändern kann. Es funktioniert auch soweit, nur hätte ich gerne auch die... (1 Reply)
Discussion started by: ruffi
1 Replies

3. Shell Programming and Scripting

redirect an awk string output to a script input with pipes

Hi, I have a function in a bash script that returns a string after some operations using awk. The following code returns 555 $VARIABLE="EXAMPLE" get_number $VARIABLE this value I'd like to pass it as a second argument of another script with the following usage myscript.sh <param1>... (7 Replies)
Discussion started by: rid
7 Replies

4. Shell Programming and Scripting

Backup eines Verzeichnis und der unterverzeichnisse erstellen

Hallo ich bin neu in dem bereich Bash scripting und deswegen suche ich ein script der auf meinem unix server laufen soll und zwar immer wenn ich den server starte oder alle 24h der script soll ein backup von einem verzeichnis und meheren unterverzeichnissen erstellen da ich nirgends was... (1 Reply)
Discussion started by: HansWurst
1 Replies

5. Shell Programming and Scripting

Wrapper script for image deployment - stdin/stdout - named pipes and the like

Hi everyone, first post here. Anyone who isn't interested in the background, press pagedown :). I sometimes need to make scripts for little things I need in the infrastructure at the company I work at. Currently I am trying to make a wrapper script for a proprietary image-deployment program.... (2 Replies)
Discussion started by: andreas.ericson
2 Replies

6. Windows & DOS: Issues & Discussions

rediretion and pipes in DOS shell cmd interpreter

Hello, I am trying to accomplish the following. Send the output of a command to the screen (this happens by default) as well as capture the output of the screen to a log file. How can this be achieved in DOS command interpreter syntax. Any ideas/suggesstions/indicators are greatly... (2 Replies)
Discussion started by: jerardfjay
2 Replies

7. Filesystems, Disks and Memory

PIPEs and Named PIPEs (FIFO) Buffer size

Hello! How I can increase or decrease predefined pipe buffer size? System FreeBSD 4.9 and RedHat Linux 9.0 Thanks! (1 Reply)
Discussion started by: Jus
1 Replies
Login or Register to Ask a Question