![grep 이름을 사용하여 여러 줄을 한 줄로 숨기기](https://linux55.com/image/180559/grep%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%97%AC%EB%9F%AC%20%EC%A4%84%EC%9D%84%20%ED%95%9C%20%EC%A4%84%EB%A1%9C%20%EC%88%A8%EA%B8%B0%EA%B8%B0.png)
이것 좀 도와주실 수 있나요?
item : name_1
213321654
32549846546
item : name_2
8563161631
item : name_3
96315242161
73216510631
51654316416
변환이 필요함
item : name_1 213321654 32549846546
item : name_2 8563161631
item : name_3 96315242161 73216510631 51654316416
답변1
이것은 grep이 아닌 awk의 작업입니다.
awk 'NF==1 { printf " %s", $1 }
NF>1 { printf "%s%s",l,$0; l="\n" ;}
END { printf "%s",l ;}'
주요 요령은 printf
새 행 삽입을 방지하는 것입니다.
답변2
유명한 sed oneliner의 변형을 사용하여 조건부로 줄을 연결할 수 있습니다.
$ sed -e :a -e '$!N;s/\n[[:space:]]\{1,\}/ /;ta' -e 'P;D' file
item : name_1 213321654 32549846546
item : name_2 8563161631
item : name_3 96315242161 73216510631 51654316416