2012-05-23 3 views
1

UNIX에서 LINUX로 코드를 마이 그 레이션하고 있으며, unix2dos 명령을 SUSE 11.0에서 사용할 수 없다는 것을 알고 있습니다. 알려주십시오.Unix에서 Linux 로의 마이그레이션 - unix2dos

alias unix2dos='recode lat1..ibmpc' 

은 unix2dos와 동일한 효과가 있습니까?

+0

왜 매핑하지 'unix2dos'가 있고 유닉스로 매핑 된 파일 만 리눅스로 전송하는 유닉스 박스에서 라인이 끝나는가? –

+0

Linux에서 코드를 실행하는 동안 UNIX를 항상 사용할 수 없기 때문에. –

+1

유닉스에서 리눅스로 마이 그 레이션하는 이유는 라인 엔딩을 변환하는 이유는 무엇입니까? 그들은 동일한 규칙을 사용합니다. – mata

답변

3

코드 변환에 대해서는 잘 모르겠지만, sed -i 's/$/\r/'unix2dos과 같은 역할을합니다.

+0

실제로 나는 거대한 파일을 가지고 있고 sed/perl은 성능을 저하시킬 수 있습니다. –

+2

'sed'보다 빠르다는 생각이 들지 않습니다. 큰 파일에서 한 번 시도하고 속도가 무엇인지 확인하십시오. –

+1

@SachinChourasiya'recode'는 문자 인코딩을 바꾸기위한 것입니다 (http://www.informatik.uni-hamburg.de/RZ/software/gnu/utilities/recode_3.html#SEC8). 이것은 거의 모든 파일을 새로운 인코딩으로 다시 매핑하는 대신 각 행에 문자를 추가하는'sed' 버전보다 느릴 수 있습니다. –

0

recode을 사용하는 것은 줄 바꿈 문자를 변경하는 것이 아니라 문자 집합을 변환하는 데 위험한 것처럼 보입니다. recode을 사용하지 않았지만 파일이 인코딩 된 경우 파일을 손상시킬 수 있습니다. Latin1 대신 UTF-8.

I 패키지는 SUSE에서 발견되는 것을 알고 있지만, (데비안 패키지 tofromdos을의 발견에) 아마 todos처럼 unix2dos에 대한 대안 중 하나가되지 않습니다.

다른 권장 사항으로 sed을 사용하면 잘 작동합니다. 성능에 대해 정말로 염려가 있다면 awk '{print $0 "\r"}'에 대한 sed의 성능을 비교할 수 있습니다. 어떤 경우가 더 빠를 지 말할 수는 없지만 파일 샘플 모두를 측정하지는 않습니다.

0

다음 정력에 파일을 (를)로드

:set ff=dos - DOS 라인 엔딩 (CRLF) 변경

:set ff=unix - 유닉스 라인 엔딩 (LF)의 변경

+1

vim에 대용량 파일을로드하면 렌더링에 * loooong * 시간이 걸릴 수 있습니다. 또한 명령 행에서 바로 실행할 수 없습니다. –

+0

@TimPote : 여기서 vim 명령 줄에서 올바르게 작동합니다. 나는 명령 행 (bash, cmd.exe 등)에서 직접 테스트하지 않았다. vim에서 20 메가 바이트의 파일을로드하고 변환하는 데 몇 초가 걸립니다. 나를 위해 충분하다. – JimR

관련 문제