Ich versuche, einen bestimmten ViM-Befehl in ein Linux-Bash-Skript zu verschieben. In ViM lautet der Befehl
:g/^SOMEWORD$/d
Um alle Zeilen zu löschen, die nur ein bestimmtes Wort und sonst nichts enthalten.
Wenn ich es in ein Bash-Skript verschiebe, funktioniert es nicht mehr
vim -e -s /tmp/file.txt << EOF
:g/^SOMEWORD$/d
:update
:quit
EOF
Das Escapen von $
scheint keinen Unterschied zu machen. Gibt es $
in diesem Szenario eine andere Möglichkeit, das zu verwenden, oder übersehe ich etwas anderes?
vim -e -s /tmp/file.txt << EOF
:g/^SOMEWORD\$/d
:update
:quit
EOF
Antwort1
Ich verstehe nicht, warum, aber beim direkten Bearbeiten der Datei in ViM wurde sie als Unix-Datei behandelt, beim Bearbeiten über das Here-Doc jedoch als DOS-Datei. Ich habe dieses wirklich praktische Tool gefunden, das das Problem jedoch behoben hat
`yum install dos2unix`
dos2unix ./filename.txt
Dies scheint die Datei mit den Unix-Dateistandards kompatibel zu machen