답변1
^M은 Windows에서 파일을 가져오거나 편집한다는 의미입니다.
dos2unix
파일에 대한 명령을 사용하여 파일을 Unix 텍스트 모드로 변환합니다.
DOS는 줄 바꿈과 줄 바꿈 "\r\n"을 줄 종결자로 사용하는 반면 Unix는 줄 바꿈 "\n"만 사용합니다. ^M은 "추가" \r 문자를 시각적으로 표현한 것입니다.
이 명령을 설치하려면 dos2unix
다음을 수행하십시오(Debian 기반 배포판에서):
sudo apt-get install dos2unix
또는 Mac(MacPorts)에서:
sudo port install dos2unix
또는 sed를 사용하여 다음과 같이 이 작업을 수행할 수 있습니다.
sed 's/\r$//' dosfile.txt > unixfile.txt
답변2
join(1)
(적어도 내가 사용하고 있는 버전은) ^M
연결된 파일에 추가하거나 입력 하지 join
않지만 ^M
. Hex 뷰어와 일부 테스트 사례를 통해 진행 상황을 확인할 수 있습니다.
$ echo "1 a" > test1
$ echo "1 b" > test2
$ join test1 test2 | od -bc
0000000 061 040 141 040 142 012
1 a b \n
0000006
$
^M
그리고 입력 파일에 테스트 케이스가 있습니다:
$ perl -E "say qq(1 a\r)" > test1
$ perl -E "say qq(1 b\r)" > test2
$ join test1 test2 | od -bc
0000000 061 040 141 015 040 142 015 012
1 a \r b \r \n
0000010
$
dos2unix
입력 파일을 수정하는 방법에는 여러 가지가 있습니다 (비록 tr
파일이 줄 구분 기호의 고대 MacOS 전통을 사용하는 경우 \r
이는 좋지 않은 생각이지만 ).
$ od -bc test1
0000000 061 040 141 015 012
1 a \r \n
0000005
$ tr -d '\r' < test1 > foo
$ mv foo test1
$ od -bc test1
0000000 061 040 141 012
1 a \n
0000004
$