Ich habe Spalten in einer Datei. Einer ist der Name eines Wertes und der andere ist der entsprechende Wert. Ich möchte den Wert für bestimmte Namen ändern. So habe ich Infile:bash- kann nicht Zeilen in Datei ändern
TB 10
Abs(M_1) 100
Ive versucht, dies zu (unsuccesfully) ändern:
M1_0=$(grep "Abs(M_1)" $infile)
awk '{ gsub("$M1_0", "Abs(M_1) $M1") };{print}' $infile > $infile.new
mv $infile.new $infile
Wo ich M1 habe definiert unterschiedlich sein jedes iteration.I keine Fehler erhalte aber Der Dateiwert ändert sich nicht. Ich habe auch Dutzende von sed-Konfigurationen ausprobiert. Ich verstehe nicht, was ich falsch mache.
Du hast das '$ (' von Zeile 1 ... – Siguza
nie geschlossen) Sorry, das war ein Tippfehler. Wenn ich es nicht geschlossen hätte, würde Bash sich beschweren. –
'M1_0 = $ (grep ...)' ist falsch. Sie haben ein Leerzeichen nach '='. Überprüfen Sie mit http://www.shellcheck.net/ – fedorqui