我正在尝试将某个 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 文件标准