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'을 포함했지만 도움이되지 않았습니다.
미리 감사드립니다
첫 번째 솔루션 : 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] 삭제
몇 마디 만하겠습니다