我想加入bash中的兩個文件。我想保留這兩個文件中的所有可配對和不可配對的行。不幸的是使用join
我可以從一個文件中保存不可配對的字段,例如。 join -1 1 -2 2 -a1 -t" "
。
我也想保留所有配對重複條目(在連接列)從這兩個文件。 也就是說如果file1
X ID1 AB
X ID1 CD
X ID1 DF
X id2的CX
X ID3 FV
像SAS一樣加入bash
和第二文件是
ID1 DF CF
ID1 DS DG
id2 cv df
id2 as ds
id3 cf cg
生成的文件應該是:
X ID1 AB DF CF
X ID1 AB DS DG
X ID1 CD DF CF
X ID1 CD DS DG
X ID1 DF DF CF
X ID1 DF DS DG
X ID2 CX CV DF
X ID2 CX作爲DS
X ID3 FV CF CG
這就是爲什麼我一直使用SAS做出這樣的加入,適當的排序列後。
data x;
merge file1 file2;
by common_column;
run;
它工作正常,但
1.我使用Ubuntu的大部分時間,我切換到Windows在SAS數據合併。
2.最重要的是,SAS可以截斷太長的數據條目。
這就是爲什麼我更願意以bash加入我的文件,但我不知道適當的命令。
有人可以幫我,或指導我適當的資源嗎?
SAS的最大可變長度爲32767個字符。所以,如果你遇到截斷問題,你的文件不是那麼寬泛,那麼別的東西就出錯了。您可能需要將'lrecl = 32767'語句添加到您的文件名或infile語句中。 – 2012-01-12 17:27:42
我已經使用了導入嚮導,我可以在其中指定「猜測行數」的字段,導入期間SAS會掃描此行並根據找到的最長記錄分配變量的長度。我會嘗試使用代碼和您的建議導入。 – boczniak767 2012-01-12 21:30:23