Login
Newsletter

Thema: Unerwünschte grep-Ausgaben vermeiden

10 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von Jemand am Mi, 6. Januar 2016 um 14:55 #

GREP_OPTIONS sind in neueren Versionen deprecated und verseuchen die Ausgabe von grep komplett.

Das ist zwar wirklich nen sinnvoller weg um sowas oder farbige Ausgabe zu bewerkstelligen, kann jedoch zu Problemen führen, wenn grep in scripten verwendet wird und die Optionen das Verhalten von grep verändern.

[
| Versenden | Drucken ]
  • 0
    Von ms123 am Mi, 6. Januar 2016 um 15:57 #

    Warum nicht einfach?
    grep -r "muster" /etc

    [
    | Versenden | Drucken ]
    0
    Von kbdcalls am Do, 7. Januar 2016 um 14:12 #

    Dann krückt die Manpage oder leidet an digitaler Demenz.

    GREP_OPTIONS
    This variable specifies default options to be placed in front of any explicit options. For example, if GREP_OPTIONS is '--binary-files=without-match --directories=skip', grep behaves as
    if the two options --binary-files=without-match and --directories=skip had been specified
    before any explicit options. Option specifications are separated by whitespace. A backslash
    escapes the next character, so it can be used to specify an option containing whitespace or a backslash.

    Dieser Beitrag wurde 1 mal editiert. Zuletzt am 07. Jan 2016 um 14:25.
    [
    | Versenden | Drucken ]
    • 0
      Von bluescream? am Mo, 8. Februar 2016 um 22:32 #

      Hier sagt die manpage:


      GREP_OPTIONS
      This variable specifies default options to be placed in front of any explicit options. As this causes problems when writing portable scripts, this feature will be removed in a future release of grep, and grep warns if it is used. Please use an alias or script instead.

      [
      | Versenden | Drucken ]
0
Von anon am Mi, 6. Januar 2016 um 18:05 #

Man sollte besser mit "$@" die Parameter expandieren. Also:

lg () { grep -s "$@"; }

rg () { grep -R -s "$@"; }

Ansonsten würden Dateinamen mit Leerzeichen – auch in Anführungszeichen – nicht korrekt übergeben.

[
| Versenden | Drucken ]
0
Von Xk2c am So, 10. Januar 2016 um 00:53 #

Hallo

ergänze, die option -l von grep ist in diesen fällen ebenfalls oft recht nützlich:

grep(1)
-l, --files-with-matches
Suppress normal output; instead print the name of each input
file from which output would normally have been printed. The
scanning will stop on the first match. (-l is specified by
POSIX.)

Der Unterschied ist, es wird nur der Name einer Datei mit einem Treffer ausgegeben,
nicht der/die Treffer selbst. Ist recht praktisch um sich mal eben einen Überblick zu verschaffen.

MfG

[
| Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten