Bash Skript mit Grep, um nach einem Muster in einer Datei zu suchen

8

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%     
Atif Mohammed Ameenuddin 16.06.2010, 11:38
quelle

3 Antworten

15

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.

    
Moritz Both 16.06.2010, 11:41
quelle
4

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.

%Vor%     
Dennis Williamson 16.06.2010 13:46
quelle
0

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

    
user8952030 16.11.2017 13:58
quelle

Tags und Links