Ich musste kürzlich nach einem Passwort suchen, das möglicherweise in einer Datei gespeichert wurde. Ich wollte nicht, dass diese Zeile in der Bash-Geschichte auftaucht.
Wie kann ich verhindern, dass bei Verwendung von grep ein Passwort oder andere vertrauliche Informationen im Bash-Verlauf gespeichert werden? Wie kann ich zum Beispiel grep dazu bringen, das Muster von stdin oder console zu lesen?
Der Vollständigkeit halber beantworte ich die Frage im Körper: Wie bekomme ich grep, um Muster von stdin zu lesen:
Sie können die
-f
Option verwenden:Das liest eine beliebige Anzahl von Mustern aus
stdin
, eines pro Zeile. (-
bedeutetstdin
, Sie können auch eine Datei mit Mustern angeben, eines pro Zeile.)grep
Stimmt mit Zeilen überein, in/path/to/file
denen eines der angegebenen Muster übereinstimmt.quelle
Dies ist das Beste, was ich mir einfallen lassen konnte:
Ist das sicher genug? Gibt es eine andere Möglichkeit, das Muster wiederherzustellen, als das Terminal zu scrollen? Gibt es einen schöneren Weg?
quelle
read -s
, um Echo zu verhindern (siehe auch diese Frage ). Das Geheimnis wird jedoch in derps
Ausgabe sichtbar sein . Sie können stattdessengrep -f /dev/stdin *
(odergrep -f - *
) verwenden, damit grep die Muster aus einer Datei^D
(read -es; echo $REPLY) | grep -f - *