파일에서 "\ r \ n"을 "\ n"으로 바꾸는 가장 빠르고 가장 핵심적인 방법은 무엇입니까?


11

나는 tr더 핵심적인 방법이므로 아마도 주어진 파일 내의 것들을 대체하는 더 빠른 방법 이라고 생각 합니다.

그러나 tr은 같은 양의 문자 만 대체 할 수 있습니다. 의미...

2 개의 문자는 2 개의 문자로만 교체 할 수 있습니다.

\r\n\n통해 의문의 여지가 없다tr

다음 가장 좋은 옵션 sed입니까?

교체에 가장 핵심 빠른 방법 나오지됩니다 \r\n\nTR의 능력의 부족 주어진 파일을?

가능한 경우 예를 원합니다.


"가장 핵심"이란 정확히 무엇을 의미합니까?
키이스 톰슨

답변:


23

을 사용 sed하면 다음을 수행 할 수 있습니다.

sed 's/\r$//'

함께 할 수있는 같은 방법으로 tr만 제거해야합니다 \r:

tr -d '\r'

이것은의 모든 인스턴스를 제거하지만 \r필요하지는 않습니다 \n.


2
이 두 가지는 동일하지 않습니다. 첫 번째는 '\ r \ n'을 '\ n'(효과적으로)으로 바꾸지 만 두 번째는 '\ r'이 나타날 때마다 제거합니다. 줄 바꿈 이외의 텍스트 파일에 캐리지 리턴이 나타나는 경우는 드물지만 발생할 수 있습니다.
6:56의

4

또는 사용 dos2unix

예를 들면 다음과 같습니다.

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

우리는 교체 \r\n로 볼 수 있습니다\n


이것은 OP 목록의 프로그램이 아니지만 제 생각에는 작업을 수행하는 가장 깨끗한 방법입니다. 나는 그러한 전환이 필요할 때마다 개인적으로 사용합니다.
рüффп
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.