grep -f auf OS X erzeugt segfault

8

Wenn Sie einen Mac haben, versuchen Sie Folgendes:

%Vor%

Hier ist die Version:

%Vor%

Dies ist eine Maschine (ein rMBP des Geschmacks 2012), die mit den Software-Updates von Apple fortgefahren ist, also bin ich auf 10.8.4.

Ich habe verifiziert, dass GNU grep , kompiliert von der Quelle, nicht unter diesem Problem leidet. In der Tat ist es Version 2.14, die eine ganze Reihe von Versionen nach 2.5.1 ist.

Aber wie könnte man die Aufgabe erreichen, eine Eingabe gegen eine Reihe von Regexes zu testen, ohne eine ineffizientere Schleife, die für jede Regex einen Grep erzeugt?

Bearbeiten: Der Ansatz, den ich mir vorgenommen habe, war etwas wie: while read REGEX; do [[ ... =~ $REGEX ]] ... done < regexfile .

Frage: Ist das ein bekannter Fehler in dieser Version von grep? Wie können wir unsere Systeme so einrichten, dass sie mit einer Datei von Regexes ordnungsgemäß funktionieren?

Update: Sieht so aus, als ob einige Leute berichten, dass es funktioniert (sogar mit diesem speziellen FreeBSD 2.5.1 grep). Was sind einige Schritte, die ich unternehmen kann, um herauszufinden, welche .so / .dylib es möglicherweise verwendet? Kann jemand ein shasum /usr/bin/grep machen und mir sagen, ob es für dich funktioniert? (Ich bin mir nicht sicher, ob das viele Informationen liefern würde, aber was ich suche, ist, ob die Konfiguration meines Computers vermasselt ist oder ob dies ein tatsächlich existierendes Problem mit dieser Version der Software ist.)

%Vor%

Hier finden Sie weitere Informationen:

%Vor%

Weitere Untersuchung:

%Vor%

Ich habe die Maschine neu gestartet. Es wiederholt sich wiederholt in gdb.

    
Steven Lu 22.06.2013, 03:47
quelle

1 Antwort

3

Ich habe OSX 10.8.4 auf dem MacBook Air und Ihr Beispiel stürzt nicht standardmäßig ab, sondern nur, wenn Sie --color -Parameter hinzufügen.

Erläuterung

Dieser Absturz tritt normalerweise auf, wenn Sie Wilcard (Sternchen) mit den Terminalfarben mischen und dies der Softwarefehler ist.

Überprüfen Sie auch ein anderes einfacheres Beispiel:

%Vor%

Hier scheint --color=auto den Unterschied zu machen (ohne es oder auf never zu setzen, dann stürzt es nicht ab). Also nehme ich an, dass Ihr Grep standardmäßig Farben im Terminal verwendet.

Lösung

Stellen Sie sicher, dass Ihr Grep kein Alias ​​für Grep ist, wenn Farben aktiviert sind oder die Farben nicht standardmäßig aktiviert sind.

Sie können immer versuchen, grep mit --color=never auszuführen.

Für eine dauerhafte Lösung habe ich den Fehlerbericht gemeldet:

Ссылка

Damit kann das Problem in der Software selbst behoben werden.

Wenn Sie auf ein detaillierteres Protokoll Ihres Absturzes zugreifen möchten, gehen Sie zu Konsole, Protokollliste anzeigen und suchen Sie unter Benutzerdiagnoseberichte nach dem Absturzprotokoll.

ZB:

%Vor%

Hier ist eine detailliertere Erklärung über den Absturz:

%Vor%

Quelle: Ссылка

Es scheint auch, dass es verschiedene Grep-Binärdateien auf verschiedenen OSX gibt, sogar mit derselben Version:

%Vor%     
kenorb 13.08.2013, 13:24
quelle