입력하다:
ID Name NUMBER
1ABC234)234-2345,
2CBF23588900,
3knl334235354,
4gkmnk436563654,
원하는 출력:
*ID Name NUMBER ID Name NUMBER ID Name NUMBER*
LINE--1 1ABC234)234-2345,2CBF23588900,3knl334235354,
LINE--2 4gkmn436563654,5JNKN53546536,6jknk5643545645,
LINE--3 7........,8..........,9............,
LINE--4 10.........,11.......,12...........
이 명령을 사용해 보았지만 불행히도 모든 것이 한 줄로 바뀌었습니다.
tr -d '\n'<sample.txt
하지만 위에서 설명한 것과 똑같은 파일을 생성하려면 unix 명령을 사용해야 합니다.
답변1
줄을 병합하고 각 새 줄에는 입력 파일의 세 줄이 포함되어 있으며 동일한 헤더를 유지하려고 한다고 가정해 보겠습니다.
$ ( head -n 1 file; sed '1d' file | paste -d '\0' - - - ) >newfile
$ cat newfile
ID Name NUMBER
1ABC234)234-2345,2CBF23588900,3knl334235354,
4gkmnk436563654,line5,line6,
line7,line8,line9,
내가 사용하는 입력 파일은
ID Name NUMBER
1ABC234)234-2345,
2CBF23588900,
3knl334235354,
4gkmnk436563654,
line5,
line6,
line7,
line8,
line9,
이 head
명령은 파일의 헤더만 출력하는 반면 sed
및 paste
파이프는 구분 기호를 삽입하지 않고 나머지 줄을 3개 그룹으로 배포합니다. head
그러면 파이프와 파이프의 출력이 새 파일로 리디렉션됩니다.
언급된 특정 헤더가 필요한 경우 head
전체 명령을 echo 'insert header text here'
.
각 행 등이 필요한 경우 다음을 LINE--1
통해 결과를 전달합니다.paste
awk '{ print "LINE--" NR, $0 }'
$ ( head -n 1 file; sed '1d' file | paste -d '\0' - - - | awk '{ print "LINE--" NR, $0 }') >newfile
$ cat newfile
ID Name NUMBER
LINE--1 1ABC234)234-2345,2CBF23588900,3knl334235354,
LINE--2 4gkmnk436563654,line5,line6,
LINE--3 line7,line8,