dos2unix, perl, tr 및 sed가 없는 파일에서 Ctrl-M을 제거하는 방법은 무엇입니까?

dos2unix, perl, tr 및 sed가 없는 파일에서 Ctrl-M을 제거하는 방법은 무엇입니까?

dos2unix, perl, trsed이 존재하지 않는 매우 오래된 Unix 서버에서 작업하고 있다고 가정합니다 . 파일을 어떻게 변환할 수 있나요?해야 할 일에게유닉스체재?

답변1

줄 끝에서 캐럿-M을 제거하는 것을 말씀하시는 것 같습니다. 이를 수행하려면 vi에서 검색 및 바꾸기를 사용할 수 있습니다.

vi에서는 일반적으로 다음을 수행합니다. (여기서 "^"는 CTRL을 나타냅니다):

:%s/^V^M//g

화면에 다음과 같이 표시됩니다.

:%s/^M//g

답변2

tr없거나 없는 서버는 sed정말 오래되었거나 일부 기본 명령이 누락되어 있어야 합니다. 다행히 ed거기에 있습니다. 그것은 존재했다유닉스 초판.

ed /path/to/file
1,$s/^V^M$//
w
q

여기서는 + ^V^M를 입력 한 다음 + (리터럴 줄 바꿈을 입력하기 위해)를 입력하는 것을 의미합니다. 모든 줄이 CR LF로 끝나는 것을 알고 있으면 대신 사용할 수 있습니다(각 줄의 마지막 문자를 무차별적으로 제거).CtrlVCtrlM1,$s/.$//

관련 정보