0
조인을 사용하여 원하는 결과를 생성 할 수 없습니다.GNUwin32 join 명령을 개선하는 방법은 무엇입니까?
Windows 7에서 GNUwin32를 실행 중입니다. 64 비트. 조인 버전 5.3.0.1936 및 gawk 버전 3.1.6.2962를 실행 중입니다. 박쥐 파일에 다음 명령을 사용하여
UID_C CID
C000002 31799
C000002 31800
C000386 14950
C000386 9807916
C000386 10255083
C008114 5318432
C008117 799
C008117 444150
C008117 46878464
Table_2
UID_C CID name
C000002 31799 bevonium
C000002 31800 bevonium
C002284 24832095 hypromellose
C008117 799 indoleglycerol phosphate
C008117 444150 indoleglycerol phosphate
C008117 46878464 indoleglycerol phosphate
오전
된 table_1 :
다음 두 표는 입력
C:\gnuwin32\bin\join -t"|" -1 1 -2 1 -a1 -a2 -e "NULL" -o "0,1.2,2.2,2.3" C:\directory\Table_1.txt C:\directory\Table_2.txt > C:\directory\Table_3.txt
에서 내 삽화 stackoverflow에서 테이블을 쉽게 읽을 수있는 탭을 사용하여 서식이 있지만 실제로 입력 및 출력 구분 기호로 파이프를 사용합니다.
다음 표는 출력 :
Table_3
UID_C CID CID name
C000002 31800 31799 bevonium
C000002 31800 31800 bevonium
C000002 31799 31799 bevonium
C000002 31799 31800 bevonium
C000386 10255083 NULL NULL
C000386 9807916 NULL NULL
C000386 14950 NULL NULL
C002284 NULL 24832095 hypromellose
C008114 5318432 NULL NULL
C008117 46878464 799 indoleglycerol phosphate
C008117 46878464 444150 indoleglycerol phosphate
C008117 46878464 46878464 indoleglycerol phosphate
C008117 444150 799 indoleglycerol phosphate
C008117 444150 444150 indoleglycerol phosphate
C008117 444150 46878464 indoleglycerol phosphate
C008117 799 799 indoleglycerol phosphate
C008117 799 444150 indoleglycerol phosphate
C008117 799 46878464 indoleglycerol phosphate
원하는 출력은 다음과 같습니다
Table_4
UID_C CID name
C000002 31799 bevonium
C000002 31800 bevonium
C000386 14950 NULL
C000386 9807916 NULL
C000386 10255083 NULL
C002284 24832095 hypromellose
C008114 5318432 NULL
C008117 799 indoleglycerol phosphate
C008117 444150 indoleglycerol phosphate
C008117 46878464 indoleglycerol phosphate
내가 원하는을 생산하기 위해 결합 명령을 변경하려면 어떻게 산출?
또는 Table_4를 만들기 위해 awk를 Table_3의 포스트 프로세스로 사용해야합니까?
미리 조언 해 주셔서 감사합니다.
당신의 조언을 약간의 도움이 필요합니다. Column_1은 UID입니다 (간단히하기 위해 밑줄을 그 으십시오). Column_2는 CID입니다. Column_3은 이름입니다. awk 구문으로 번역 할 수 있도록 도와주세요 : {uid_cid [$ 1 OFS $ 2] = 1; 다음} _and_ uid_cid의 키. 아직 연결을하고 있지 않습니다. –
또한 Windows에서 실행하는 데 어려움이 있습니다. table_1 및 table_2의 입력을 사용하여 awk 코드를 실행하고 있습니다. 새로운 테이블 _3으로 리다이렉트하여 awk 처리를 이해하는지 확인하십시오. "errcount : 1"을 얻고 있습니다. –
작은 따옴표가 아닌 큰 따옴표 (Windows의 경우 .bat)를 사용하여 awk 처리를 구분합니다. –