Lange Rede kurzer Sinn, ich versuche, einen Wert in der ersten Spalte einer Textdatei grep unter Verwendung einer Variablen.Erstellen Sie Variable durch die Kombination von Text + eine andere Variable
Hier ist eine Probe des Skripts mit dem Befehl grep, das nicht funktioniert:
for ii in `cat list.txt`
do
grep '^$ii' >outfile.txt
done
Inhalt von list.txt:
123,"first product",description,20.456789
456,"second product",description,30.123456
789,"third product",description,40.123456
Wenn ich grep '^123' list.txt
ausführen, erzeugt es die richtige Ausgabe ... Nur die erste Zeile von list.txt.
Wenn ich versuche, die Variable (dh grep '^ii' list.txt
) zu verwenden, bekomme ich einen Fehler "^ ii Befehl nicht gefunden". Ich habe versucht, Text mit den Variablen zu kombinieren, um es der Arbeit zu:
VAR1= "'^"$ii"'"
aber die VAR1
Variable einen Wagenrücklauf nach den $ii
Variablen enthalten:
'^123
'
ich eine kurzen Liste der Dinge ausprobiert habe um das cr/lr (dh sed & awk) zu entfernen, aber ohne Erfolg. Es muss eine einfachere Möglichkeit geben, den Befehl grep mit der Variablen auszuführen. Ich würde lieber mit dem Befehl grep bleiben, weil es perfekt funktioniert, wenn es manuell ausgeführt wird.
Bitte werfen Sie einen Blick auf [Bearbeitungshilfe] (http://stackoverflow.com/editing-help). – Cyrus
Zeigen Sie auch Ihre gewünschte Ausgabe. – John1024
Danke für die Antworten! Die gewünschte Ausgabe ist in diesem Fall nur die erste Zeile der Datei. Grundsätzlich möchte ich, dass Grep die erste Spalte durchsucht und den Rest der Spalten ignoriert. Wenn ein Grep ohne Flags verwendet wird, wird jede Zeile der Datei angezeigt. –