입력 파일이 있습니다.
A 123 name: 1 AAA
B 123 name: 2 AAA name: 3 BBB
C 234 name: 1 AAA name: 2 BBB name: 5 CCC
열이 '이름 :'이면 다음 열과 다음 열을 인쇄하고 싶습니다.
이것은 내 awk 코드입니다.
cat input.txt | awk '{for(i=1;i<=NF;i++)if($i == "name:")print $(i+1),$(i+2)}'
그러나이 경우 모든 열은 다음과 같은 줄에 나열됩니다.
1 AAA
2 AAA
3 BBB
1 AAA
2 BBB
5 CCC
다음과 같이 열을 인쇄하고 싶습니다.
1 AAA
2 AAA 3 BBB
1 AAA 2 BBB 5 CCC
그냥 교체 print
와 printf
같은 줄에 값을 출력하고, 라인의 반복을 마친 후 새로운 라인을 삽입 :
awk '{{for(i=1;i<=NF;i++)if($i == "name:") printf $(i+1)" "$(i+2)" "} print ""; }' yourfile
출력 :
1 AAA
2 AAA 3 BBB
1 AAA 2 BBB 5 CCC
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다