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

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

dos2unix, perl및 존재 tr하는 매우 오래된 UNIX 서버에서 작업하고 있다고 가정합니다 sed. 파일을 이동하는 방법도스도착하다유닉스체재?

답변1

나는 줄의 끝을 제거하는 캐럿-M을 언급하고 있다고 생각합니다. vi에서 검색 및 바꾸기를 사용하여 이를 수행할 수 있습니다.

vi에서는 보통 이렇게 합니다: (여기서 "^"는 CTRL을 나타냅니다):

:%s/^V^M//g

화면에는 다음이 표시됩니다.

:%s/^M//g

답변2

tr서버가 없거나 sed매우 오래되었거나 일부 기본 명령이 누락되어 있어야 합니다. 희망 ed은 거기에 존재합니다.유닉스 버전 1.

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

이는 +를 먼저 ^V^M입력 한 다음 + (입력 텍스트 줄 바꿈)를 입력한다는 의미입니다. 모든 줄이 CR LF 로 끝나는 것을 알고 있다면 이를 사용할 수 있습니다(각 줄의 마지막 문자를 무차별적으로 제거) .CtrlVCtrlM1,$s/.$//

관련 정보