ViM コマンドを実行する Bash スクリプトが "$" コマンドを解釈していないようです。

ViM コマンドを実行する Bash スクリプトが

特定の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ファイル標準に準拠しているようです。

おすすめ記事