2016-06-28 3 views
1

줄 바꿈 형식의 텍스트 파일을 개행 (\ n)으로 구분 된 한 줄로 변환해야합니다. 예를 들면 : 나는이 모양을하고 싶은Bash 캐리지 리턴을 줄 바꾸기로 바꾸고 바꾸기

This is an example text file 
where the contents are separated 
by line breaks 

은 다음과 같습니다

This is an example text file\nwhere the contents are separated\nby line breaks\n 

나는 AWK, 나오지도, 또는 내장 POSIX 명령을 사용하여 열려입니다.

+0

'tr '\ r' '\ n' anubhava

+0

죄송합니다. 코드를 게시하는 것을 잊었습니다! StackOverflow는 사람들이 코드를 수정하도록 돕는 것입니다. 무료 코딩 서비스가 아닙니다. 모든 코드가 코드가없는 것보다 낫습니다. 심지어 코드를 작성하는 방법을 모르는 경우에도 메타 코드는 프로그램이 작동해야한다고 생각하는 방식을 보여줍니다. – ghoti

답변

2

이 솔루션을 시도해보십시오 :

awk 'BEGIN{RS="\n";ORS="\\n"}1' file.txt 

우리가하고있는 것은 '\ n을'처럼 기록 구분을 감지하고, 우리는 우리가 '\ n'을 사용하여 인쇄 할 때, 더블 슬래시 '가 인쇄해야합니다 의미를 \ n '을 사용하면 패턴 1을 기본 동작 (전체 레코드 인쇄)과 함께 사용하여 인쇄합니다.

문제가 있으면 알려주세요. 시도해 볼 awk가 없습니다.

1

캐리지 리턴, 줄 바꿈 또는 줄 바꿈 또는 다른 것을 의미하는 경우 "줄 바꿈"을 말할 때 명확하지 않습니다. 줄 바꿈 문자를 \n으로 바꾸려면 원하는지 또는 원하는 경우 스트립 운송은 줄 바꿈 또는 뭔가 다른에서 반환 있지만 후자는 당신이 필요로하는 모든 경우 :

dos2unix file 

당신은 당신이 어떤 AWK와 함께 할 수 DOS2UNIX이없는 경우 :

$ printf 'foo\r\nbar\r\n' | cat -v 
foo^M 
bar^M 

$ printf 'foo\r\nbar\r\n' | awk '{sub(/\r$/,"")}1' | cat -v 
foo 
bar 

당신 tr으로 견고하게 수행 할 수 없습니다. \r이 줄 끝 부분에 있는지 알 수 없으며 sed으로 이식 할 수 없습니다.

0

당신 (GNU이 나오지도)에 대한이 작동 될 수 있습니다

sed '1h;1!H;$!d;x;s/\n/\\n/g' file 

소리내어 먹는다 메모리와 인용 개행 문자로 파일.

관련 문제