경쟁 문제를 해결하려고 하는데 다음 시나리오에 갇혔습니다. 누구든지 결과를 얻는 방법을 이해하도록 도와줄 수 있습니까?
설명하다:세 개의 연속된 행으로 구성된 각 그룹은 하나의 행으로 접어야 합니다.
[출력은 다음과 같이 공유됩니다.]
파일의 데이터:
Abc 123,
zyxhj pqr
raj
ram:
vilas,
1234
jkal
yui
gshj
산출:
Abc 123,zyxhj pqr raj
ram:vilas,1234
jkal yui gshj
답변1
사용 xargs
:
xargs -d'\n' -n3 <infile
\n
ewline을 구분 기호로 기준 으로 3줄마다 읽고 인쇄합니다.
사용 paste
:
paste -d ' ' - - - <infile
공백 구분 기호를 사용하여 데이터를 3개 열에 붙여넣습니다.
사용 awk
:
awk '{ printf "%s%s", $0, (NR%3?OFS:ORS) }' infile
각 줄을 printf하고 NR(레코드 수)이 모듈로 3이 아니면 OFS(출력 필드 구분 기호, 기본값은 공백)를 인쇄하고, 그렇지 않으면 ORS(출력 레코드 구분 기호, 기본값은 개행)를 인쇄합니다.