Ich versuche rekursiv nach einem String zu suchen grep
, bekomme aber folgendes:
$ grep -r "stuff" *
grep: unrecognized option '---corporate-discount.csv'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Wie kann ich verhindern, dass Bash Dateien übergibt, die mit -
als Argument beginnen?
grep
dass es sich nicht um Optionen handelt.
subprocess.Popen(['grep', '-r', '-e' 'stuff', '--corporate-discount.csv'])
in Python erhalten, wenn nirgendwo eine Bash stattfindet.
*
in-Befehlen verursacht werden können. ALLE diese können vermieden werden, indem man ./*
stattdessen verwendet.
--
als End-of-Options-Siegel ist ebenfalls absolut sinnvoll. Nach den Richtlinien für die POSIX-Dienstprogrammsyntax muss diese eingehalten werden. siehe Leitlinie # 10. (Sicher, nicht alle Programme folgen den POSIX-Richtlinien, aber die Antwort ist, die Autoren der beleidigenden Programme zu reihen und / oder sie aus der Branche zu werfen.)