행 합치기

eseo의 이미지

스크립트를 짜는 도중 두 행을 합칠 필요가 있는데요,
예를들어 아래에서는 2, 3번째 행을 합치려고 합니다.

1: begin x y end
2: begin a b c d 
3:  e f end
4: begin 1 3 5 end

일반적으로 vi 에서는 "J" 명령으로 가능하잖아요.
이 걸 스크립트 상에서 구현해주는 명령어가 있을까요?
aero의 이미지

test.txt 파일내용

begin x y end
begin a b c d
 e f end
begin 1 3 5 end

foo.awk라는 awk 프로그램을 다음과 같이 작성한다.

{
if(NR==2)
{
printf("%s",$0);
}
else
{
printf("%s\n",$0);
}
}

awk -f foo.awk test.txt 명령의 결과

begin x y end
begin a b c d  e f end
begin 1 3 5 end
alfalf의 이미지

while read line
do
     echo -n "$line"
     if echo "$line" | grep -qe "end$"; then echo; fi
done < test.txt
eseo의 이미지

alfalf wrote:
while read line
do
     echo -n "$line"
     if echo "$line" | grep -qe "end$"; then echo; fi
done < test.txt

read 라는 유틸리티가 있었군요 :D
이렇게 하니 잘 동작하네요.
답변 감사합니다.
areo 님두요

---
배려하는 마음을 갖자.