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

[gelöst] Dateinamen auf String überprüfen

chappert

Hacker
Hallo

ich möchte aus einem bestimmten Verzeichniss alle sich darin befindenden Datein auf einen String überprüfen
und zwar genau die 5 und 6 stelle des Dateinamens, leider hab ich nicht mal einen ansstz wie ich alle Dateien überprüfen lassen kann.

Code:
CHECKSTRING=09
WORKDIR=/home/user

# wenn man die dateinamen überprüft könnte man ja mit  | cat -c 5,6 == $CHECKSTRINGdie stellen checken
# aber ich weiß nicht wie man alle Dateien in dem Verzeichnis überprüfen lassen kann egal wie viele es sind & ausschlislich Dateien keine Ordner
# wahrscheinlich erstmal irgendwie nen "find -type f" auf das verzeichen und das dann in nerfor schleife durchlaufen lassen

kann mir jemand helfen

ich hab da was aber es funktioniert nicht

Code:
CHECKSTRING=09
WORKDIR=/home/user
DATEN=`find $WORKDIR -type f`

for part in $DATEN; do
     if [ `$part | cut -c 5,6` == $CHECKSTRING ]
     then
     echo "hat geklappt"
     else
     echo "hat nicht geklappt"
     fi
done

folgende fehler treten für jede Datei einzeln auf
Code:
Keine Berechtigung
 [: ==: unary operator expected
 

Tooltime

Advanced Hacker
Ohne groß darüber nachzudenken, eine Shellvariable an eine pipe zu kleben ergibt keinen Sinn.
Wenn man an denn Inhalt will muss man schon ein echo davor setzen.
  • echo $part | cut -c 5,6`
 
OP
C

chappert

Hacker
lol danke, ist ja auch schon spät, am besten ich mach morgen weiter

funzt jetzt auf jedenfall ;)
 
A

Anonymous

Gast
warum läßt du das nicht gleich mit find miterledigen ? sondern hängst noch einen Rattenschwanz an Code und Befehlen hintendran.?

Code:
find -type f -name "????09*"     # hier alle finden
find -type f ! -name "????09*"   # oder hier, alle anderen finden


robi
 
Oben