여러 줄을 하나로 컴파일하기 위해 awk 스크립트를 사용하려고 합니다. 어떻게 해야 합니까?
나는 다음 명령을 사용하고 있습니다 :
awk < $pot/towhee.prod 'NR==411{print$5,$6}''NR==412{print$5,$6}''NR==430{print$7,$8}'
이는 다음을 생성합니다.
0.24975E-01 0.00000E+00
0.36574E+04 0.59343E+02
-3340.691 0.399
하지만 나는 이것을 원한다:
0.24975E-01 0.00000E+00 0.36574E+04 0.59343E+02 -3340.691 0.399
어떻게 해야 합니까?
답변1
설정할 수 있습니다출력 레코드 구분 기호공백(또는 탭)으로 이동합니다. 인쇄물에 개행 문자가 끝나도록 하려면 최종 인쇄 전에 이를 다시 변경할 수 있습니다.
awk 'BEGIN{ORS=" "} NR==411{print$5,$6}''NR==412{print$5,$6}''NR==430{ORS="\n"; print$7,$8}'
답변2
printf
를 사용하지 않는 한 줄 바꿈이 없는 등 인쇄 형식을 더 효과적으로 제어할 수 있습니다 \n
.
awk < $pot/towhee.prod 'NR==411{printf("%s %s ",$5,$6)}''NR==412{printf("%s %s ",$5,$6)}''NR==430{printf("%s %s ",$7,$8)}'
%s
변수를 나타내는 문자열 형식입니다.기타 제어 문자 사용 가능각 변수의 형식을 더 효과적으로 제어할 수 있습니다.
답변3
이 시도,
awk < $pot/towhee.prod 'NR==411{print$5,$6}''NR==412{print$5,$6}''NR==430{print$7,$8}' | tr '\n' ' '