Bash 脚本执行 ViM 命令似乎不解释“$”命令

Bash 脚本执行 ViM 命令似乎不解释“$”命令

我正在尝试将某个 ViM 命令移至 Linux Bash 脚本中。在 ViM 中命令是

:g/^SOMEWORD$/d

删除仅包含某个单词而不含任何其他内容的任何行。

当我将其移至 bash 脚本中时,它不再起作用

vim -e -s /tmp/file.txt << EOF
    :g/^SOMEWORD$/d
    :update
    :quit
EOF

转义$似乎没有什么区别,$在这种情况下还有另一种方法可以使用 the 还是我错过了其他东西?

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 文件标准

相关内容