
Я пытаюсь переместить определенную команду ViM в скрипт Linux Bash. В ViM команда выглядит так:
:g/^SOMEWORD$/d
Удалить все строки, содержащие только одно слово и ничего больше.
Когда я перемещаю его в скрипт bash, он больше не работает.
vim -e -s /tmp/file.txt << EOF
:g/^SOMEWORD$/d
:update
:quit
EOF
Экранирование, $
похоже, не имеет значения. Есть ли другой способ использовать $
в таком сценарии или я что-то еще упускаю?
vim -e -s /tmp/file.txt << EOF
:g/^SOMEWORD\$/d
:update
:quit
EOF
решение1
Я не понимаю почему, но редактирование файла напрямую в ViM обрабатывало его как файл Unix, а редактирование через here-doc обрабатывало его как файл DOS. Я нашел этот действительно удобный инструмент, который исправил проблему
`yum install dos2unix`
dos2unix ./filename.txt
Похоже, это делает файл соответствующим стандартам файлов Unix.