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