일반적으로 파일에서 ^M을 제거하려면 다음을 수행합니다.
dos2unix test.txt test.txt
tr -d '\r' < old.file > new.file
하지만 이 방법은 새로운 파일을 생성해야 한다고 주장합니다.
다른 파일을 생성하고 싶지 않다면 해결책은 다음과 같습니다: perl oneliner의 예
perl -pi -e 's/^M//g' file1
Solaris에서 이것을 시도했지만 불분명한 이유로 ^M이 파일에 여전히 존재합니까?
여기서 뭐가 문제인지 조언 부탁드립니다
답변1
Perl에는 \r
다음도 필요합니다.
perl -pi -e 's/^M//g' file1
^^ - should be \r
실제로는 그럴 수도 있지만오직줄 끝을 고집하고 싶습니다.
perl -pi -e 's,\r\n,\n,g' file1
실제로는 이 작업을 수행하기 위해 Perl이 필요하지 않습니다. sed
다음을 완벽하게 수행할 수 있습니다.
sed -i.bak -e 's,\r\n$,\n,g' file1
답변2
\r
대신 ^M
캐리지 리턴을 일치시키려면 를 사용해야 합니다 . 줄 시작 부분의 모든 문자가 ^M
제거되었으므로 M
파일이 여전히 괜찮은지 확인하고 싶을 수도 있습니다.