我正在嘗試將某個 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 檔案標準