Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe? (https://www.delphipraxis.net/212451-grep-exe-unter-windows-findet-nichts-%96-wer-haette-beispiel-aufrufe.html)

Andreas13 12. Feb 2023 12:13

grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Hallo Delphi-Gemeinde,
ich bräuchte wieder Eure Hilfe. Diesmal macht mir grep.exe Probleme unter Windows 10.
Ich verwende grep.exe von https://sourceforge.net/projects/grep-for-windows/ (Last Update: 2020-10-27) und versuche Inhalte in Dateien zu finden: Manchmal klappt's, oft aber nicht.

So gehe ich vor: In einem grep.bat habe ich z. B. folgendes stehen:
Code:
REM Folgende Aufrufe finden NICHTS, obwohl der Suchbegriff in etlichen Dateien enthalten ist:
REM grep -i 'TBrent;' *.dpr
REM grep -i 'TBrent;' *.pas
REM grep -iaU 'TBrent;' *.dpr
REM grep -iaU 'TBrent;' *.pas
REM grep -iaU 'TBrent' KonkreterDateiName.dpr
grep -i 'TBrent' KonkreterDateiName.dpr

pause
und finde ich nix :(, obwohl 'TBrent' in etlichen pas- und dpr-Dateien definitiv vorhanden ist.
grep.bat und grep.exe liegen im aktuellen Suchverzeichnis.
Was mache ich falsch?

Könntet Ihr einige konkrete Such-Beispiele aufführen oder/und ein geeignetes Wrap-Programm für grep.exe nennen, welches die Suche vereinfacht?

Danke für jeden Tipp im Voraus!

Viele Grüße
Andreas

Delphi.Narium 12. Feb 2023 12:31

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Dachte immer, dass auf der Kommandozeile Zeichenfolgen in " zu packen sind und nicht in ' (sofern sie Leerzeichen enthalten).

Hast Du das schonmal ausprobiert?
Code:
REM Folgende Aufrufe finden NICHTS, obwohl der Suchbegriff in etlichen Dateien enthalten ist:
REM grep -i "TBrent;" *.dpr
REM grep -i "TBrent;" *.pas
REM grep -iaU "TBrent;" *.dpr
REM grep -iaU "TBrent;" *.pas
REM grep -iaU "TBrent" KonkreterDateiName.dpr
grep -i "TBrent" KonkreterDateiName.dpr

pause
Bei meinem Grep, das bei Delphi 7 dabei ist, klappt das so jedenfalls. Mit ' um die Zeichenfolgen herum jedoch nicht.

himitsu 12. Feb 2023 12:32

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
" statt ' :?:


Code:
grep ?
Sagt, dass man nach den -optionen noch ein - oder + machen soll, um es zu deaktivieren oder aktivieren :gruebel:
[add] OK, das ist optional.


Und das große -U (binary) bedeutet im WindowsDelphi-Grep etwas ganz Anderes.


[EDIT]
Ohhh, ist garnicht von Windows.

Auf dem Entwicklungsrechner muß es nicht im Programmverzeichnis liegen.
Es liegt eine grep.exe im Delphi-BIN-Verzeichnis, welches auch in den Suchpfaden (%PATH%) steht.

Andreas13 12. Feb 2023 12:45

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Hallo,
anscheinend existieren Versionen verschiedener Programmierer von grep.exe:
@Himitsu: mein grep versteht
Code:
grep ?
gar nicht, sondern verlangt nach
Code:
 grep --help
@Delphi.Narium: Obwohl die eingebaute Hilfe Apostrophe verlangt:
Code:
grep --help:

Usage: grep [OPTION]... PATTERNS [FILE]...
Search for PATTERNS in each FILE.
Example: grep -i 'hello world' menu.h main.c
funktioniert Dein Vorschlag mit Anführungszeichen!
Vielen Dank!
Grüße, Andreas
PS:
Anscheinend kann man sich heutzutage nicht einmal auf die eingebaute Hilfe verlassen.
Es ist zum Mäusemelken!:wall:

Delphi.Narium 12. Feb 2023 12:57

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Nö, die Hilfe ist vermutlich nur für (L)Unix. Windows und Unix unterscheiden sich halt in solchen Kleinigkeiten.

/? oder ? als Parameter für die Hilfe sind dos-/windowstypisch. Unter Unix sind -h und -help für die einfache Hilfe und --h bzw. --help für die ausführliche Hilfe recht gebräuchlich.

Und schreibt man plattformübergreifende Software, muss man das dann alles an Paramaterunterschieden bzw. den unterschiedlichen Aufrufen mit dokumentieren?

Das wäre mir dann doch zu aufwändig ;-)

Dalai 12. Feb 2023 13:00

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Die Single Quotes sind im Linux-Bereich üblich, um Variablenexpandierung zu verhindern. Unter Windows funktionieren nach meiner Erfahrung nur Double Quotes (in der CMD). Der Code wurde wahrscheinlich einfach genommen und für Windows kompiliert. Daher derselbe Hilfetext, aber das unterschiedliche Verhalten.

Grüße
Dalai

Andreas13 12. Feb 2023 13:02

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Ihr habt recht, aber wenn ich das Programm von hier:
https://sourceforge.net/projects/grep-for-windows/
explizit für Windows downloade, sollte ich schon eine Windows-Version erwarten dürfen.:-D
Oder?
Grüße, Andreas

Delphi.Narium 12. Feb 2023 13:19

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Du bekommst dort eine Kompilat für Windows, das heißt aber nicht, dass da dann auch eine komplett andere Dokumentation mit eingebunden wird.

Es handelt sich um einen Quelltext, der halt durch unterschiedliche Kompiler gejagt wird.

Wenn Du mit Delphi programmierst, kannst Du Deine Software ja auch für unterschiedliche Plattformen erstellen und kompilieren. Wenn Du nun ein derartiges Konsolenprogramm erstellst, würdest Du die dort (selbstverständlich) von Dir implementierte, über Kommandozeilenparameter gesteuerte, Hilfe auch an die Belange jeder Plattform anpassen, ebenso die erforderlichen, unterschiedlichen Parameterverarbeitungen an die jeweilige Zielplattform anpassen oder Dir doch lieber eine Implementierung überlegen, die auf allen Zielplattformen funktioniert?

Und die Unterschiede zwischen " für Windows und ' für Unix "weiß man eben" ;-)

Unter Dos bzw. Windows beginnen Parameter "normalerweise" mit 'nem / und unter Unix ist - üblich. Aber die Variante mit - funktioniert halt auch unter Windows.

Und da es sich bei grep im Ursprung um ein Kommandozeilentool für Unix handelt, muss man sich halt an die unixtypische Syntax gewöhnen und die Besonderheiten, die nur bei DOS/Windows anzutreffen sind, selbst ausbaden ;-) In der Regel ist das nur der Unterschied zwischen " und '.

Andreas13 12. Feb 2023 13:30

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Ich verstehe Dich Delphi.Narium, bin nur schockiert über die "schlampige" Programmierung von heute.
Stell Dir mal vor, was Deine Kunden von der Software halten würden, wenn Du ihnen so etwas ausliefern würdest.
O tempora, o mores...
Grüße, Andreas
PS:
Als Nicht-Informatiker kenne ich Unix & Co nur vom Hörensagen...

Delphi.Narium 12. Feb 2023 13:55

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Das Problem der "schlampigen" Programmierung bezüglich der Unterschiede zwischen - und / bzw. ' und " kenne ich sei den Anfangstagen von DOS, das ist also kein heutiges Problem, sondern dem Unsinn geschuldet, dass man seinerzeit, als DOS (mehr oder weniger) von Unix abgekupfert wurde, meinte unbedingt derartige Unterschiede einbauen zu müssen, die sich nun halt über Generationen weitervererben.

Mit Informatiker und/oder Nichtinformatiker hat das nix zu tun. Das hat nur was mit der Nutzung der Kommandozeile unter beliebigen Betriebssystemen zu tun. Dafür braucht man keine Informatik, aber ein paar Grundkenntnisse zur Benutzung des eigenen Betriebssystem und halt ein bisserl was über den Tellerrand hinaus, damit man die Transferleistung für die Nutzung von Werkzeugen, die ursprünglich nicht zum eigenen Betriebssystem gehörten, erbringen kann.

Bei den meisten Kommandozeilenprogrammen hilft der Aufruf ohne Parameter und man erhält eine mehr oder weniger ausführliche Hilfe für die grundsätzlich Aufrufsyntax. Meist erscheint dort dann auch direkt der Hinweis, wie man an die Hilfe gelangt.

Und die Unterschiede zwischen " unter Windows und ' unter Unix bzw. Parameter beginnen mit / unter DOS/Windows bzw. - (oder auch schonmal --) unter Unix, muss man einfach wissen ;-)

Bei der Parameterauswertung haben sich etliche Entwickler an die Unixsyntax gewöhnt, so dass die auch unter Windows häufig anzutreffen ist, der Unterschied zwischen " und ' ist aber betriebssystembedingt und hierfür jetzt für alle Konsolenprogramme der Welt, die für Unix und Windows kompiliert werden können, zu verlangen, dass die einkompilierten Hilfen jeweils angepasst werden, halte ich für übertrieben ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz