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