Frage zu "grep -Fx" *gelöst*

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Frage zu "grep -Fx" *gelöst*

Beitrag von weedy » 17.10.2016 15:46:59

Hi,

folgendes funktioniert so, wie ich es will:

Code: Alles auswählen

$ grep -Fx a
b # eingabe b
aa # eingabe aa
a # eingabe a, 
a # antwort durch grep: zeilenweises match (-x) bei fixed (-F) String ("a")
Aber leider steht 'grep -x' für :

Code: Alles auswählen

  -x, --line-regexp
              Select  only  those  matches  that exactly match the whole line.
              This option has the same effect as anchoring the expression with
              ^ and $.  (-x is specified by POSIX.)
Nun ist die Frage, da ja bei 'grep -F' (fixed Strings) eigentlich keine regulären Ausdrücke sind und '^' und '$' da auch keine Beduetung haben, widerspricht mein Code-Beispiel eigentlich der Dokumentation.

Nun ist die Frage: wird mir das Konstrukt 'grep -Fx' mir irgendwann um die Ohren fliegen oder bin ich auf der sicheren Seite?

Gruß
Zuletzt geändert von weedy am 17.10.2016 21:40:10, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Frage zu "grep -Fx"

Beitrag von Meillo » 17.10.2016 15:54:10

weedy hat geschrieben:

Code: Alles auswählen

  -x, --line-regexp
              Select  only  those  matches  that exactly match the whole line.
              This option has the same effect as anchoring the expression with
              ^ and $.  (-x is specified by POSIX.)
Nun ist die Frage, da ja bei 'grep -F' (fixed Strings) eigentlich keine regulären Ausdrücke sind und '^' und '$' da auch keine Beduetung haben, widerspricht mein Code-Beispiel eigentlich der Dokumentation.

Nun ist die Frage: wird mir das Konstrukt 'grep -Fx' mir irgendwann um die Ohren fliegen oder bin ich auf der sicheren Seite?
Du brauchst dir keine Sorgen machen. Die Beschreibung fuer `-x' gilt ebenso fuer `grep -F' wie auch fuer das normale `grep' als auch fuer `grep -E', darum die allgemeine Formulierung. Es steht auch auch nicht da ``is the same as ...'', sondern ``has the same effect as ...'' und dieser Effekt bezieht sich auf den Effekt beim normalen grep.

Falls du dir aber sicher sein willst, dann schau nicht in die Manpage sondern in POSIX:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html hat geschrieben: -x
Consider only input lines that use all characters in the line excluding the terminating <newline> to match an entire fixed string or regular expression to be matching lines.
Da gibt es nun keine Mehrdeutigkeit mehr. :-)


EDIT: Wenn du nun noch den Kommentar in POSIX unter Rationale beruecksichtigst, dass es `-x' frueher nur fuer fgrep (d.h. fuer `-F') gab -- aus dem einfachen Grund, weil man dort eben keine Anker verwenden kann --, dann wirst du umso gewisser sein, dass `-x' mit `-F' am allersichersten funktionieren wird. (Bei den anderen grep-Varianten ist `-x' nur zur Bequemlichkeit und Symmetrie da.)
Use ed once in a while!

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Frage zu "grep -Fx"

Beitrag von weedy » 17.10.2016 21:39:16

Danke

Gruß

Antworten