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 檔案標準

相關內容