\r\n
예를 들어 파일에서 줄 바꿈(CRLF)이 뒤따르는 모든 캐리지 리턴을 제거하고 싶습니다 . 어떻게 해야 하나요? dos2unix
CRLF를 LF로 대체하기 때문에 사용할 수 없습니다 . 이전에 없는 tr
항목도 대체하므로 사용할 수 없습니다 . 어떻게 해야 합니까?\n
\r
답변1
sed ":a;/\r$/{N;s/\r\n//;b a}"
'\r'
이것은 끝에 (뒤에)가 있는 모든 행과 일치합니다 '\n'
. 해당 줄에서는 먼저 입력의 다음 줄을 추가하고( '\n
사이에 구분 기호를 넣는 동안) 결과를 빈 문자열로 바꾼 다음 "\r\n"
처음으로 돌아가 패턴 공간의 새 내용이 일치하지 않는지 확인합니다. 또 우연히.
'\r'
설명에 따라: 파일에서 다른 항목을 제거 하려면 CRLF 조합을 제거한 후 추가하면 됩니다.
sed ":a;/\r$/{$!N;s/\r\n//;t a};s/\r//g"
답변2
나는 줄 끝을 조작하는 것과 관련된 작업을 할 때 perl
퀴프를 사용하는 경향이 있습니다.
perl -pe 'BEGIN {undef $/} s/\r\n//g' *.txt
이 작업을 수행하는 핵심은 undef $/
Perl이 각 파일을 문자열로 읽도록 하고 이를 검색하고 바꿀 수 있다는 것입니다. \r
알몸이 되려면 정규식을 조정하십시오.
perl -pe 'BEGIN {undef $/} s/\r\n?//g' *.txt