awk를 사용하여 첫 번째 열과 두 번째 열의 첫 번째 줄을 단일 열로 인쇄하는 방법은 무엇입니까?

툴라시 R

awk를 사용하여 첫 번째 열과 두 번째 열의 첫 번째 줄을 단일 열로 인쇄하려고합니다. 다음 awk one-liner를 사용하고 있습니다.

awk 'NR==1{printf $1 OFS; next}{print $2}' infile > new_file

Input:
A123 154.1
A123 158.1
A123 159.4

Expected Output:
A123
154.1
158.1
159.4

그러나 one-liner의 결과 출력은 다음과 같습니다.

A123 154.1
158.1
159.4

어떤 실수로 인해 출력이 바뀌는 지 싶습니다. 코드에 '\ n'을 포함했지만 도움이되지 않았습니다.

미리 감사드립니다

RavinderSingh13

첫 번째 솔루션 : GNU에서 표시된 샘플로 작성 및 테스트하여 여러 ID를 처리 할 수 ​​있도록 다음과 같은 접근 방식을 사용awk합니다.

awk '{a[$1]=(a[$1]?a[$1] ORS:"")$2} END{for(i in a){print i ORS a[i]}}' Input_file

두 번째 솔루션 : Input_file의 첫 번째 필드가 정렬되었는지 고려한 다음 다음을 시도하십시오.

awk 'prev!=$1{print $1 ORS $2;prev=$1;next} {print $2}' Input_file

세 번째 솔루션 : Input_file이 첫 번째 열로 정렬되지 않은 경우코드를sort실행하십시오awk.

sort -k1 Input_file | awk 'prev!=$1{print $1 ORS $2;prev=$1;next} {print $2}'

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관