패턴 스페이스에 읽어들일때는 뉴라인 문자가 없다가 출력시에 다시 붙여지죠. 그래서 패턴스페이스로던 홀드스페이스로던 뉴라
인 문자를 추가해주는게 핵심이죠.
123
345
678
세줄마다 붙이고 싶다?
sed -e 'N;N;N;s/\n/My_favorate_delimiter/g;' filename
끝까지 싸그리 한줄로 만들어서 조져버린다?
sed -e a -e 'N;s/\n/My_favorate_delimiter/;$!ba;' filename
호곡
라벨은 잘못쓰면 조집니다. 무식한 고투문이죠. 500K 조금 넘는거 라벨로 붙여 나가니까 허허 4분 걸리네요.
고저 순서대로 조져가는거이 대빵이지요.
대신에
sed -n -e '$!H;${H;g;s/\n/My_favorate_delimiter/gp;}' filename
보통은 공백라인 이거나 특별한 패턴이 나타나는 줄까지가 처리를 원하는 레인지인 경우겠지요.
레인지 구분자가 공백라인일 때
sed -n -e 'H;/^$/{g;s/\n/My_favorate_delimiter/g;p;n;h;};${g;s/\n/My_favorate_delimiter/gp;};' filename
레인지 구분자가 특정패턴인경우( 여기서라면..My_range_patter )
sed -n -e 'H;/My_range_pattern/{x;s/\n/My_favorate_delimiter/gp;n;H;};${g;s/\n/My_favorate_delimiter/gp;};' filename
sed 새피하게 보다가는 옷댐다.
레인지를 어떻게 구분하는가 그 레인지 내에서 또 어떻게 무엇을 처리하는가에 따라서 sed도 참 어렵습니다.
Re: 쉘 프로그램에서 줄바꿈 문자 제거하기...?
그냥 tr 써서 하시면 될 듯 한데요.
% cat file | tr -d '\12'
\12 는 newline 이구요..
Re: 쉘 프로그램에서 줄바꿈 문자 제거하기...?
프로그래밍 게시판에서 sed 프로그램 질문이라??
패턴 스페이스에 읽어들일때는 뉴라인 문자가 없다가 출력시에 다시 붙여지죠. 그래서 패턴스페이스로던 홀드스페이스로던 뉴라
인 문자를 추가해주는게 핵심이죠.
123
345
678
세줄마다 붙이고 싶다?
sed -e 'N;N;N;s/\n/My_favorate_delimiter/g;' filename
끝까지 싸그리 한줄로 만들어서 조져버린다?
sed -e a -e 'N;s/\n/My_favorate_delimiter/;$!ba;' filename
호곡
라벨은 잘못쓰면 조집니다. 무식한 고투문이죠. 500K 조금 넘는거 라벨로 붙여 나가니까 허허 4분 걸리네요.
고저 순서대로 조져가는거이 대빵이지요.
대신에
sed -n -e '$!H;${H;g;s/\n/My_favorate_delimiter/gp;}' filename
보통은 공백라인 이거나 특별한 패턴이 나타나는 줄까지가 처리를 원하는 레인지인 경우겠지요.
레인지 구분자가 공백라인일 때
sed -n -e 'H;/^$/{g;s/\n/My_favorate_delimiter/g;p;n;h;};${g;s/\n/My_favorate_delimiter/gp;};' filename
레인지 구분자가 특정패턴인경우( 여기서라면..My_range_patter )
sed -n -e 'H;/My_range_pattern/{x;s/\n/My_favorate_delimiter/gp;n;H;};${g;s/\n/My_favorate_delimiter/gp;};' filename
sed 새피하게 보다가는 옷댐다.
레인지를 어떻게 구분하는가 그 레인지 내에서 또 어떻게 무엇을 처리하는가에 따라서 sed도 참 어렵습니다.
댓글 달기