Ich möchte nach der Zeichenfolge suchen, die mit einem Bindestrich beginnt, z. B. -X
in einer Datei, aber es verwechselt dies mit einem Befehlszeilenargument.
Ich habe es versucht:
grep "-X"
grep \-X
grep '-X'
Ich möchte nach der Zeichenfolge suchen, die mit einem Bindestrich beginnt, z. B. -X
in einer Datei, aber es verwechselt dies mit einem Befehlszeilenargument.
Ich habe es versucht:
grep "-X"
grep \-X
grep '-X'
Verwendung:
grep -- -X
Verwandt: Was bedeutet ein einfacher Doppelstrich? (Dank an Verrückt nach Natty ).
Der Bindestrich ist in der Bash ein Sonderzeichen, wie unter http://tldp.org/LDP/abs/html/special-chars.html#DASHREF . Wenn man dies einmal ausblendet, kommt man an der Bash vorbei, aber Grep hat immer noch eine eigene Bedeutung für Bindestriche (indem es Optionen anbietet).
Sie müssen also wirklich zweimal entkommen (wenn Sie die anderen genannten Antworten nicht verwenden wollen). Das Folgende wird/sollte funktionieren
grep \\-X
grep '\-X'
grep "\-X"
Eine Möglichkeit, auszuprobieren, wie die Bash Argumente an ein Skript/Programm weitergibt, besteht darin, ein .sh-Skript zu erstellen, das einfach alle Argumente echot. Ich verwende ein Skript namens echo-args.sh, mit dem ich von Zeit zu Zeit spiele; es enthält nur die Argumente:
echo $*
Ich rufe sie auf als:
bash echo-args.sh \-X
bash echo-args.sh \\-X
bash echo-args.sh "\-X"
Sie haben die Idee.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.