Команда Bash Script Execute ViM, по-видимому, не интерпретирует команду «$»

Команда Bash Script Execute ViM, по-видимому, не интерпретирует команду «$»

Я пытаюсь переместить определенную команду 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.

Связанный контент