• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Befehl mit allen Dateien ausführen

Hi,

folgende Situation:
Ich habe verschiedene Dateien in Verzeichnissen. Mit diesen Dateien muss ich was anstellen (myProg starten). Ich gehe bisher so vor:

* Konsole
* ich gehe ins Verzeichnis
* myProg Datei01
* myProg Datei03
* ...
* myProg Datei80

Gibts die Möglichkeit dies zu vereinfachen, ohne gleich einen Shell-Skript zu schreiben?

Sowas in der Art:
for each file a do
myProg a

Ist sowas direkt unter der Konsole möglich?

Gruss, Martin
 

regexer

Advanced Hacker
oc2pus schrieb:
for i in `ls -1 Datei*`; do myProg "$i"; done
Möglichkeit 2: Da ich davon ausgehe, das myProg selbst scriptiert/programmiert wurde, kann man natürlich auch das Ding selbst auch intelligenter machen...
 
Oh, die Dateien sind in meinem Fall nicht durchnumeriert.
Es soll zum Beispiel jede *.txt Datei bearbeitet werden.

Gruss, Martin
 

TeXpert

Guru
kommt es auf eine Reihenfolge an? wenn nein, dann entweder oc2pus-Vorschlag mit der for-Schleife wobei das Probleme mit Leerzeichen in Dateinamen macht:

nimm
Code:
#!/bin/bash

echo "ich bin '$0' und habe '$1' als Parameter"
als programm, jetzt:

Beispiel:
Code:
-- Demo für linux-club --> ls -1
1.txt
1 zweite.txt
2.txt
2 zweite.txt
3.txt
3 zweite.txt
4.txt
4 zweite.txt
5.txt
5 zweite.txt
6.txt
6 zweite.txt
7.txt
7 zweite.txt
8.txt
8 zweite.txt
9.txt
9 zweite.txt

-- Demo für linux-club --> for i in `ls -1 *.txt`; do ../myProg.sh "$i"; done
ich bin '../myProg.sh' und habe '1.txt' als Parameter
ich bin '../myProg.sh' und habe '1' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '2.txt' als Parameter
ich bin '../myProg.sh' und habe '2' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '3.txt' als Parameter
ich bin '../myProg.sh' und habe '3' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '4.txt' als Parameter
ich bin '../myProg.sh' und habe '4' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '5.txt' als Parameter
ich bin '../myProg.sh' und habe '5' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '6.txt' als Parameter
ich bin '../myProg.sh' und habe '6' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '7.txt' als Parameter
ich bin '../myProg.sh' und habe '7' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '8.txt' als Parameter
ich bin '../myProg.sh' und habe '8' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '9.txt' als Parameter
ich bin '../myProg.sh' und habe '9' als Parameter
ich bin '../myProg.sh' und habe 'zweite.txt' als Parameter
man sieht es wird nicht nur an Zeilenwechseln ein neues Wort erkannt, daher besser mit einer While-Schleife:
Code:
-- Demo für linux-club --> ls -1 *.txt | while read file ; do ../myProg.sh "$file" ; done
ich bin '../myProg.sh' und habe '1.txt' als Parameter
ich bin '../myProg.sh' und habe '1 zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '2.txt' als Parameter
ich bin '../myProg.sh' und habe '2 zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '3.txt' als Parameter
ich bin '../myProg.sh' und habe '3 zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '4.txt' als Parameter
ich bin '../myProg.sh' und habe '4 zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '5.txt' als Parameter
ich bin '../myProg.sh' und habe '5 zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '6.txt' als Parameter
ich bin '../myProg.sh' und habe '6 zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '7.txt' als Parameter
ich bin '../myProg.sh' und habe '7 zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '8.txt' als Parameter
ich bin '../myProg.sh' und habe '8 zweite.txt' als Parameter
ich bin '../myProg.sh' und habe '9.txt' als Parameter
ich bin '../myProg.sh' und habe '9 zweite.txt' als Parameter
 
Oben