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
Dateinamen mit Fragezeichen suchen...
Re: Dateinamen mit Fragezeichen suchen...
ich glaube der heisst:
find ./ -r *?* oder so ähnlich...
ansonsten: man find
find ./ -r *?* oder so ähnlich...
ansonsten: man find
Re: Dateinamen mit Fragezeichen suchen...
"?" 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
<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
Re: Dateinamen mit Fragezeichen suchen...
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?
Also möchte ich nun alle Dateien die diese Zeichenfolge drin haben suchen...
Doch wie suche ich mit find danach?
Re: Dateinamen mit Fragezeichen suchen...
'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
<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
Re: Dateinamen mit Fragezeichen suchen...
Jetzt bin ich ihnen allen auf den Versen
Vielen vielen Dank
Philipp
Vielen vielen Dank
Philipp
Re: Dateinamen mit Fragezeichen suchen...
diese lösung hat bei mir auch gefunzt:
find / -print | grep ?
find / -print | grep ?
Re: Dateinamen mit Fragezeichen suchen...
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
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