두 개의 파일을 bash에 공통 열을 사용하여 가입하고 싶습니다. 나는 두 파일 모두에서 모든 유랑과 비길 수없는 줄을 유지하고 싶다. 불행히도 join
을 사용하여 하나의 파일에서만 견딜 수없는 필드를 저장할 수 있습니다 (예 : join -1 1 -2 2 -a1 -t" "
.
두 파일의 반복 항목 (조인 열)에 대한 모든 쌍을 유지하려고합니다. 즉, 파일 1은
X ID1 AB 경우
X ID1 CD
X ID1 안양
X ID2 CX
X ID3 FV
은 SAS와 같이 bash로 결합합니다
과 두 번째 파일
ID1 ds는 DG
ID1 안양 CF입니다 id2 cv df
id2를 ds로 사용
id3 cf cg
결과 파일은 다음과 같아야합니다
X ID1 순이 안양 CF
X ID1 AB DS DG
X ID1 CD 안양 CF
X ID1 CD ds는 DG
X ID1 DF DF CF
X ID1 안양 DS DG
X ID2 CX 이력서 안양
X ID2 CX로 DS
X ID3 FV CF CG
. merge file1 file2;
by common_column;
run;
하지만 나는 SAS의 데이터를 병합 윈도우로 전환해야 할 대부분의 시간 동안 우분투를 사용으로
data x;
2. 가장 중요한 것은 SAS는 너무 긴 데이터 항목을자를 수 있다는 것입니다.
그래서 필자는 bash에서 내 파일에 참여하는 것을 선호하지만 적절한 명령을 알지 못합니다.
누군가 나를 도울 수 있습니까, 아니면 적절한 자원으로 안내해 줄 수 있습니까?
SAS의 최대 가변 길이는 32767 문자입니다. 따라서 절단 문제가 발생하고 파일이 그보다 더 넓지 않은 경우 다른 문제가 발생합니다. 파일명이나 infile 문에'lrecl = 32767' 문을 추가해야 할 수도 있습니다. –
가져 오기 마법사를 사용했습니다. "추측 행 수"를 지정할 수있는 필드가 있습니다. 가져 오는 동안 SAS가이 행을 검색하고 발견 된 가장 긴 레코드에 따라 변수 길이를 할당합니다. 코드와 제안을 사용하여 가져 오기를 시도하겠습니다. – boczniak767