- 论坛徽章:
- 4
|
本帖最后由 robinhappiness 于 2015-10-01 13:00 编辑
$cat /home/read.csv
#data A
filename,systemName,countA,countB
A00001,AAAA,1,
A00002,BBBB,2,
A00003,CCCC,3,
countA列的件数在/csvA下用wc -l 取得
#wc -l /csvA/A00001-20150930
1
#wc -l /csvA/A00002-20150930
2
#wc -l /csvA/A00003-20150930
3
countB列的件数在/countcsvA下的文件中记录着,所以可以直接用cat取得
#cat /countcsvA/A00001.csv
4
#cat /countcsvA/A00002.csv
5
#cat /countcsvA/A00003.csv
3
read.csv文件中的filename和目录/csvA下的文件名和目录/countcsvA下文件名的共通部分是
A00001
A00002
A00003
想得到的输出文件result.csv的格式是
#data A
filename,systemName,countA,countB
A00001,AAAA,1,4
A00002,BBBB,2,5
A00003,CCCC,3,3
请教怎样修改如下命令才能得到如上的输出结果?
之前错误认为countB列的件数在/countcsvA目录下的文件中取得的时候也是用wc -l,
实际上countB列的件数直接就用cat /countcsvA目录下的文件名就可以取到!
$ awk 'function get(dir,file,line){cmd="wc -l "dir"/"file;cmd|getline line;close(cmd);return(line+0)}BEGIN{FS=OFS=","}{if(!p){print;if($1=="filename")p=1;next}print $1,$2,get("/csvA",$1"*"),get("/countcsvA",$1".csv")}' read.csv
|
|