29.05.2017, 22:55 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

1

02.08.2014, 01:31

ASCII-Zeichen suchen mit grep

Hallo.
Ich habe auf meiner 500GB USB etwas über 130GB *.zip Dateien aus meiner Windows Zeit. Jetzt suche ich nach Dateien in diesen .zip die bestimmte Sonderzeichen enthalten. Zum probieren habe ich erst mal G gesucht. grep -r -i 'G' ./ habe ich erfolgreich getestet. Aber bei grep -r -i '/071' ./ habe ich ein anderes Ergebnis. 071 dezimal ist der ASCII für G. Wie muss ich den Befehl hinter grep richtig schreiben?

2

02.08.2014, 13:31

Du mußt den Hex-Wert für G nehmen

Quellcode

1
grep -Pri '\x47' ./

Du kannst aber auch direkt nach Sonderzeichen suchen

Quellcode

1
grep -ri 'Ä' ./
Gruß Werner * Eigene Rescue-CD
remaster Grml * remaster Knoppix

ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

3

02.08.2014, 19:36

danke Werner. ich dachte ich muss die Zahlen dezimal eingeben. mit deinem Beispiel "grep -Pri '\x47' ./" hat es funktioniert.
und ich muss ein bakslach benutzen, kein slach.
ich suche etwa solche oder ähnliche Sonderzeichen ò die von Windows zip stammen. ò=F2 könnte ein ö sein.

Der Grund für meine Suche ist folgender: ich erstelle mir bei Ubuntu listen mit diesem Befehl damit ich weiß welche Dateien betroffen sind.
"grep -Pri -l '\xF2' ./ >grepF2.txt"
Dann starte ich Knoppix 6.1 vom USB und extrahiere diese Dateien, denn Knoppix 6.1 extrahiert diese .zip wieder mit den richtigen Umlauten ä,Ä,ö,Ö,ü,Ü.
Dann komprimiere ich sie bei Ubuntu mit .tar.gz
Klingt Kompliziert, ist aber einfacher als jedes Zeichen einzeln zu korrigieren.
Gruß ubuntuli

beim komprimieren in .tar.gz ist mir aufgefallen das die Dateien etwa 20-40%, durchschnittlich 30% kleiner sind als die ursprünglichen .zip Dateien. Also spare ich etwa 40 oder mehr GB ein.

Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von »ubuntuli« (17.08.2014, 13:58)


ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

4

06.01.2017, 02:51

Falsche Umlaute von Windows .zip unter Linux korrigieren

Hallo Werner.

Ich möchte zu diesen älteren Beitrag noch mal eine Frage stellen.
Gibt es einen Befehl mit dem ich ein Sonderzeichen suchen und automatisch mit dem richtigen ersetzen kann?

Mit
grep -Pri -l '\x??' ./ >grep??.txt

kann ich die Dateien suchen aber nicht ändern.

Ich muss sie alle manuell ändern. Das ist mir jetzt zu anstrengend. Ich habe in zwei Jahren nicht mal 50 Prozent von 164 GB geschafft und das auf zwei Rechnern also 328 GB, weil ich entweder wenig Lust hatte oder zu wenig Zeit.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ubuntuli« (06.01.2017, 14:20)


klaus2008

Meister

Beiträge: 2 626

Geschlecht: Männlich

5

06.01.2017, 20:03

Hallo ubuntuli!

Ich habe ein Verständnisproblem: Handelt es sich um Textdateien, die in einem Ziparchiv enthalten sind und mit der falschen Codepage abgespeichert wurden?

Vielleicht kann Dir dann eines der Programme tr oder sed helfen. Den Suchvorgang könnte man eventuell mit dem Programm find automatisieren.

Gruß
Klaus

ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

6

08.01.2017, 00:51

Hallo Klaus.
Es handelt sich ausschließlich um *.txt und *.doc Dateien.
Diese Dateien hatte ich bis Oktober 2014 unter Windows XP als *.zip auf einer externen Platte oder DVD gespeichert. Seit 2014 habe ich kein Windows mehr. Jetzt bin ich dabei mir diese Daten unter Linux zurück zu holen. Dabei habe ich festgestellt das Windows Zip alle Umlaute falsch gespeichert hat. Jetzt möchte ich nach dem auspacken der *.zip Daten diese falschen Umlaute möglichst schnell und einfach korrigieren. Beispiel: Д=ä Ф=ö Б=ü

klaus2008

Meister

Beiträge: 2 626

Geschlecht: Männlich

7

08.01.2017, 03:51

Hallo!

Dann verstehe ich das Problem dahingehend, dass die beim Abspeichern verwendete Zeichensatztabelle ("Codepage") eine andere ist (z. B. ISO-8859-1) als diejenige, welche Knoppix verwendet (z. B. UTF-8 ).

Im Thread Falsche Umlaute in Dateien ersetzen im Forum von Ubuntuusers wird auf das Programm iconv hingewiesen. Eine Beschreibung findet man zum Beispiel hier: iconv - GNU.

Berichte bitte, ob das Programm Dir helfen konnte.

Gruß
Klaus

Der Beitrag von »ubuntuli« (09.01.2017, 17:47) wurde vom Autor selbst gelöscht (09.01.2017, 20:52).

ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

9

09.01.2017, 21:21

Hallo Klaus.
Deine Links habe ich gelesen, führten aber nicht zum gewünschten Erfolg weil iconv nicht mehr Standardmäßig unter Linux Knoppix 7.6 und Ubuntu 14.04 integriert sind. Beim Installieren von iconv kommt immer die Meldung das dieses Programm durch ein neueres ersetzt wurde.
Aber ich habe eine Idee.
Kann ich mit dem Befehl find nach Zeichen suchen und durch die richtigem Zeichen Ersetzen?
So ähnlich wie unter DOS, Qbasic oder Excel wenn a=1 dann setze a=3.
Ich hatte vor einigen Jahren den Befehl find in Verbindung mit chmod mal benutzt um Zugriffsrechte zu setzen.
Der Befehl den ich verwndet hatte lautet.

Quellcode

1
find . -type d -exec chmod *** {} \;

die Sterne * stehen für die Dezimalziffern die hier nicht wichtig sind.
Wie kann ich den Befehl find benutzen?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »ubuntuli« (09.01.2017, 22:42)


progi

Fortgeschrittener

10

09.01.2017, 23:56

Hallo ubuntuli,


1. ich bin hier in Knoppix 7.6.1
Wenn ich in der Kommandozeile "man iconv" eintippe, bekomme ich (Ausschnitt) :

Zitat

NAME
iconv - convert text from one character encoding to another
...

Also ist hier unter KN7.6.1 iconv vorhanden (und ich habe es nicht "nachinstalliert"), aber Du sagst :

Zitat

...
weil iconv nicht mehr Standardmäßig unter Linux Knoppix 7.6 und Ubuntu 14.04 integriert sind. Beim Installieren von iconv kommt immer die Meldung das dieses Programm durch ein neueres ersetzt wurde.

???

--------------------------------------------------------------------------------------------------------------------------

2. warum versteifst Du Dich so auf "find" ?

Zitat

Kann ich mit dem Befehl find nach Zeichen suchen und durch die richtigem Zeichen Ersetzen?


Wenn Du "man find" eintippst,


Zitat


NAME
find - search for files in a directory hierarchy

SYNOPSISeinfach
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

DESCRIPTION
This manual page documents the GNU version of find. GNU find searches the directory tree rooted at each given file name by
evaluating the given expression from left to right, according to the rules of precedence (see section OPERATORS), until the
outcome is known (the left hand side is false for and operations, true for or), at which point find moves on to the next
file name.
...

erklärt man Dir doch klar, was find macht !

- also wenn find ein file gefunden hat, kann man (z.B.) den Befehl chmod ausführen.

Aber find sucht nicht im Inhalt eines files (sondern im "directory tree" !).

Im Inhalt eines files suchen z.B. sed,iconv oder grep (wie Dir schon Andere - s.o. - sagten)
Z.B. hat Dir doch Werner den (tricky) Befehl "grep -Pri " ... aufgeschrieben !
Also, ich verstehe nicht, daß Du Tage später weiter um "find" kreist ?!

???

Nichts für ungut !

MfG
progi

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »progi« (10.01.2017, 00:07)


ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

11

10.01.2017, 00:21

ich suche nicht nach dem Inhalten von Dateien sondern nach den Namen der Dateien oder Ordnern in denen sie sind.
Eispiel Д:

Quellcode

1
./zuwachs2011/Laufwerk_C/WIN98_Zuwachs/Profiles/Jogi/Anwendungsdaten/Microsoft/Vorlagen/Office 95-Vorlagen/PrДsentationen/Finanzbericht.pot

diese Zeichen möchte ich korrigieren.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »ubuntuli« (10.01.2017, 00:35)


progi

Fortgeschrittener

12

10.01.2017, 00:32

Aha,

dann ist der Satz

Zitat

Jetzt suche ich nach Dateien in diesen .zip die bestimmte Sonderzeichen enthalten


falsch !

sondern müßte heißen :

Jetzt suche ich nach Dateinamen in diesen .zip die bestimmte Sonderzeichen enthalten

Da müßte z.B eine Kombination
find .... mv ...
oder
find ... rename ...

helfen (oder es gibt sicher auch andere Programme, die umbenennen).

MfG
progi

ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

13

10.01.2017, 00:40

diese .zip sind schon ausgepackt.
ich hoffe Du verstehst jetzt das Ziel.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ubuntuli« (10.01.2017, 18:27)


progi

Fortgeschrittener

14

10.01.2017, 00:52

Hallo,

Zitat

ich hoffe Du verstehst jetzt das Ziel.


ja, ich denke - und dann liegt die Lösung z.B. in

find ... mv ...

Hast Du noch Probleme, diesen Befehl "mit Leben" zu füllen ?
- dann brauchen wir genauere Angaben (welche Sonderzeichen sollen in was umgewandelt werden ? - besser noch Beispiele, welche Dateinamen sollen in welche anderen Dateinamen umbenannt werden ... , in welchem Verzeichnis ... etc)
um Dir zu helfen.
Also nach diesem langen hin und her - etwas Butter bei de fische !

MfG
progi

Nachtrag 1h02m :
Soweit ich mich erinnere, versteht "rename" i.G. zu "mv" auch perl-Ausdrücke (also sehr mächtig).

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »progi« (10.01.2017, 01:06)


ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

15

10.01.2017, 19:47

Beispielsweise sind № ein ü

Quellcode

1
./zuwachs2011/Laufwerk_C/WIN98_Zuwachs/Eigene Dateien/Eigene Bilder/uhrlaub2008/03-z№ssow.jpg

Ф ein ö

Quellcode

1
./zuwachs2011/Laufwerk_C/WIN98_Zuwachs/Eigene Dateien/Eigene Bilder/uhrlaub2008/03-altefфhr.jpg

Ў ein ö

Quellcode

1
./zuwachs2011/Laufwerk_C/WIN98_Zuwachs/Eigene Dateien/WINWORD/Bewerbung/Bewerbung_Passau2005/Wirtshaus Bayrischer Lўwe.doc

Ф Д kann auch ä sein

Quellcode

1
./zuwachs2011/Laufwerk_C/WIN98_Zuwachs/Eigene Dateien/WINWORD/Arbeitszeit/ARBZEIT 2002_Mфrz.XLS

Quellcode

1
./Daten1995-2008/Backup20010327a/Backup27032001a/Laufwerk C/Eigene Dateien/WINWORD/TEXT/Fernseher - ProgrammplДtze.doc

Das Zeichen ¦ ist ein ü und ist Hexadezimal A6 wenn ich mich nicht irre.
Die Zeichen Ф=ä und Ф=ö sehen zwar gleich aus sind digital aber unterschiedliche Ziffern.

Seit dem ich diese Win.zip Dateien entpackt und gespeichert hatte habe ich das Problem mit diesen Umlauten.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »ubuntuli« (10.01.2017, 21:06)


ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

16

12.01.2017, 16:49

Danke Klaus für die Links.
Ich hoffe damit kann ich diesen Beitrag endlich zu Grabe tragen. Ich habe diesen Alten Beitrag von mir noch einmal aus der Mottenkiste geholt weil ich immer noch dieses Problem mit den Umlauten habe und das auf zwei Rechnern mit insgesamt etwa 400 GB alte Winows Zip Dateien.
Wichtigstes Argument ist hier wohl der Zeichensatz utf-8.
Ich weiß zwar nicht welchen Zeichensatz Windows Zip benutzt aber das kriege ich nach zwei Jahren auch noch raus.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »ubuntuli« (12.01.2017, 17:47)


ubuntuli

Fortgeschrittener

Beiträge: 346

Geschlecht: Männlich

17

15.01.2017, 22:24

UNGELÖST

ich habe herausgefunden das ich alle Windows SonderZeichen nur manuell ändern kann. Wenn ich Zeichen mit find suche werden sie zwar gefunden aber nicht richtig geändert, :cursing:
weil das Zeichen Beispiel Д ein ö oder ein ü sein kann ist es nicht sinnvoll alle Д Zeichen auf ü zu ändern wenn auch ein ö babei ist.
jetzt schließe ich dieses Thema nicht als gelöst.
Das Problem ist vielleicht der Unterschied zwischen den Dateisystem MS Windows FAT32/64;NTFS und Unix Linux ext4.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »ubuntuli« (17.01.2017, 22:24)


Linux HardwareLinux Computer & PCs | Linux Notebooks & Laptops | Geek Shirts | Geek und Nerd Shirt Shop