file = "Wert"Ich kann nicht verstehen, dieses grep Muster
hier ist der Inhalt von Wert:
erste col1 col2 col3
Sekunden col1 col2 col3
drei col1 col2 col3
wollte Ausgabe:
erste col1 col2 col3
drei col1 col2 col3
Bedingung: wir arbeiten mit Variablen nicht mit Dateien direkt. Das Suchmuster sollte auch in einer Variablen gespeichert werden.
Um dieses Ergebnis zu haben, ich mache:
var = zweite
grep -v $ var $ file> $ tmp; mv $ tmp $ file
tmp muss mit einem beliebigen Wert initialisiert werden, um zu arbeiten
Aber ich kam über diese und ich verstehe einfach nicht mehr meine Bash:
grep -v "^ $ {var}" $ file> $ tmp; mv $ temp $ file
Abgesehen von der Tatsache, dass es nicht für mich arbeiten, ich möchte zu verstehen, die Bedeutung oder zumindest was es zu tun ist; vielleicht kann ich es nachher arrangieren.
was bedeutet "^ $ {var}," !! ??
, was ich weiß bisher:
^-> Zeilenanfang
$ -> Zeilenende
^$ ->?
{} -> Spiel genau
, ->?
all diese Symbole zusammen ->?
Irgendeine Idee Leute? ich danke dir sehr.
'$ {}' ist nicht grep syntax überhaupt - innerhalb doppelter Anführungszeichen ist es * shell * -Syntax, die die Shell anweist, sie und ihren Inhalt durch den Wert einer Variablen zu ersetzen. –
'set -x' ist dein Freund, um Befehle zu sehen, wie sie nach dem Abschluss von Erweiterungen ausgeführt werden. Und es gibt eine Menge quotationsbezogener Fehler hier - bedenken Sie, dass Sie Ihr komplettes Skript unter http://shellcheck.net/ ausführen können. –
@achille: Bitte [formatieren Sie Ihren Code richtig] (http://meta.stackexchange.com/a/22189/248777). – mklement0