Bash 스크립트 ViM 실행 명령이 '$' 명령을 해석하지 않는 것 같습니다.

Bash 스크립트 ViM 실행 명령이 '$' 명령을 해석하지 않는 것 같습니다.

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

관련 정보