awk -F "," '{ a=1
while ((getline p < ARGV[2]) > 0) {
props[a]=
a++
}
close(ARGV[2])
}
ARGIND > 1 { exit }
{ for (elem in props) {
if (length(props[elem]) = NF) {
split(props[elem],header,",")
for (item in header) {
data[header[item]+=$i ","
}
}
}
END {
for (elem in data) {
split(gensub(",$","","g",data[elem]),d,",")
print elem ":"
for (e in d) {
print d[e]
}
}
}' a.txt a.props.txt
這可能會實現使用現有的CSV包,但我沒有測試它。我不會推薦它與真正的大文件,因爲腳本唾手可得的內存。而會發生什麼,如果a_props.txt
包含兩個或多個行具有相同字段長度例如爲:
name,age
name,email
這種情況是不在以上腳本處理!並且該腳本的參數順序是重要的。
這是比較正常的,以不同的文件格式分割成單獨的文件,所以你需要一個A.TXT和b.txt對應a_props.txt和b_props。 txt(假設你正在處理2行以上的數據)。你可以重構這些數據文件的創建,還是一個嚴格的約束?您也可以構建過濾器來獲取一個文件,並根據需要將它們變成b,c,....取決於您擁有多少個佈局。祝你好運。 – shellter 2012-02-01 18:33:26