Ich schreibe ein Bash-Skript, um mit GREP nach einem Muster in einer Datei zu suchen. Ich bin ratlos, warum es nicht funktioniert. Dies ist das Programm
%Vor%Oder gibt es einen anderen Ansatz, dies zu tun?
Danke
(Inhalt der Datei)
%Vor%(Muster)
%Vor% Die einfachen Anführungszeichen um $pattern
in der grep-Anweisung bewirken, dass die Shell die Shell-Variable nicht auflöst, daher sollten Sie doppelte Anführungszeichen verwenden.
Nur eines dieser Semikolons ist notwendig (das vor then
), aber ich lasse es normalerweise weg und setze then
in eine Zeile. Sie sollten doppelte Anführungszeichen um die Variable, die Sie widergeben, und um die Variable, die Ihr grep
-Muster enthält, setzen. Variablen, die Dateinamen enthalten, sollten ebenfalls zitiert werden. Sie können read
Ihre Eingabeaufforderung anzeigen lassen. Sie sollten $()
anstelle von Backticks verwenden.
lesen -p "Dateinamen eingeben ..." fname lese -p Muster "Suchmuster eingeben" if [-f "$ fname"] dann result = $ (grep -i -v -e $ muster -e "$ fname") echo "$ ergebnis" fi