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