특정 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 파일 표준을 준수하는 것으로 보입니다.