한 번에 3줄의 데이터를 표시하는 로그 파일이 있습니다. 이와 같이:
1 data
2 data
3 data
1 data
2 data
3 data
1 data
2 data
3 data
다음과 같이 1줄에 3줄씩 표시하고 싶습니다.
1 data 2 data 3 data
1 data 2 data 3 data
1 data 2 data 3 data
나는 이 파일을 캡처한 다음 이 작업을 수행하는 명령을 통해 전송할 수 있기를 원합니다. 나는 sed 또는 awk가 해결책이라고 생각합니다.
답변1
다음을 사용할 수 있습니다 paste
.
$ paste - - - <data.txt
1 data 2 data 3 data
1 data 2 data 3 data
1 data 2 data 3 data
답변2
한 가지 방법은 다음과 같습니다.
$ perl -pe 's/\n/ / unless $. % 3 == 0' file
1 data 2 data 3 data
1 data 2 data 3 data
1 data 2 data 3 data
답변3
또는 sed
두 줄을 "N"으로 삭제한 다음 결과 버퍼에서 줄 바꿈을 억제할 수 있습니다.
sed 'N;N;s/\n/ /g'