Dateinamen mit Fragezeichen suchen...

Software besorgen und anwenden
Post Reply
Message
Author
aebi
Posts: 41
Joined: 02. Dec 1999 10:32
Location: Kastanienbaum

Dateinamen mit Fragezeichen suchen...

#1 Post by aebi »

Hallo Zusammen

Irgendann in einer Kopier-Aktion zwischen zwei verschiedenen Dateisystemen sind mir die Umlaute sämtlicher Dateien durch Fragezeichen ersetzt worden.
Leider sind es sehr viele Dateien über viele Verzeichnisse verteilt. Nun möchte ich alle Dateien mit Fragezeichen suchen und anzeigen. Ich habe folgende Befehle ausprobiert:
ls -R | grep ?
find ./ -name "*?*"
Aber leider funktioneren beide nicht (beim zweiten Kann ich's ja noch verstehen, aber beim ersten?!?)

Hat irgendjemand da eine Lösung?
Philipp

ljlkj

Re: Dateinamen mit Fragezeichen suchen...

#2 Post by ljlkj »

ich glaube der heisst:
find ./ -r *?* oder so ähnlich...
ansonsten: man find

Jochen

Re: Dateinamen mit Fragezeichen suchen...

#3 Post by Jochen »

"?" ist ein Wildcardzeichen, so wie "*". Daher geht die Shell dran und verucht, dort Dateinamen einzusetzen, die dem Muster "?" entsprechen: Alle Dateien, deren Namen aus genau einem beliebigen Zeichen bestehen. Wenn Du das Fragezeichen escapest, hast Du gewonnen:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
find . -name "*\<!--no-->?*"
</font><hr></pre></blockquote>
Alternativ wäre es möglich, dass Dir der ls-Befehl nur Fragezeichen anstelle nicht-druckbarer Zeichen anzeigt. Das passiert, wenn Du ein alias auf ls gesetzt hast, das immer die Option "-q" einschaltet. Verwende alternativ mal

\<!--no-->ls -balR

Der Backslash verhindert eine alias-Auflösung, die Option -b zeigt nicht-druckbare Zeichen in Oktalschreibweise an. Den Rest der Optionen müsstest Du kennen.

Viel Erfolg,

Jochen

aebi
Posts: 41
Joined: 02. Dec 1999 10:32
Location: Kastanienbaum

Re: Dateinamen mit Fragezeichen suchen...

#4 Post by aebi »

Hab mal "ls -bal" probiert. Ich bekomme nun immer \201 anstelle der Fragezeichen.
Also möchte ich nun alle Dateien die diese Zeichenfolge drin haben suchen...
Doch wie suche ich mit find danach?

Jochen

Re: Dateinamen mit Fragezeichen suchen...

#5 Post by Jochen »

'N bisschen tricksen...

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
find . -name "*"$(echo -e "\201")"*"
</font><hr></pre></blockquote>
Keine weiteren Leerzeichen in das Kommando einsetzen! Die Shell ersetzt das echo-Kommando durch das Zeichen mit Oktalwert 201 und setzt es mit den Sternchen als ein Argument zur -name-Option zusammen.

Jochen

aebi
Posts: 41
Joined: 02. Dec 1999 10:32
Location: Kastanienbaum

Re: Dateinamen mit Fragezeichen suchen...

#6 Post by aebi »

Jetzt bin ich ihnen allen auf den Versen
Vielen vielen Dank
Philipp

df

Re: Dateinamen mit Fragezeichen suchen...

#7 Post by df »

diese lösung hat bei mir auch gefunzt:
find / -print | grep ?

Jochen

Re: Dateinamen mit Fragezeichen suchen...

#8 Post by Jochen »

Und wird genau dann nicht mehr funzen, wenn Du im Verzeichnis, wo Du den Aufruf machst, eine Datei auftauscht, deren Name aus genau einem beliebigen Zeichen besteht, da die Shell dann das Fragezeichen durch den dateinamen ersetzt.

Immer schön quoten, wenn man mit Regulären Ausdrücken arbeitet! <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Jochen

Post Reply