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

관련 정보