동일한 파일 ^M에서 Perl Oneliner를 통해 Solaris에서 제거되었습니다.

동일한 파일 ^M에서 Perl Oneliner를 통해 Solaris에서 제거되었습니다.

일반적으로 파일에서 ^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파일이 여전히 괜찮은지 확인하고 싶을 수도 있습니다.

관련 정보