- 論壇徽章:
- 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列的件數(shù)在/csvA下用wc -l 取得
#wc -l /csvA/A00001-20150930
1
#wc -l /csvA/A00002-20150930
2
#wc -l /csvA/A00003-20150930
3
countB列的件數(shù)在/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
請教怎樣修改如下命令才能得到如上的輸出結(jié)果?
之前錯(cuò)誤認(rèn)為countB列的件數(shù)在/countcsvA目錄下的文件中取得的時(shí)候也是用wc -l,
實(shí)際上countB列的件數(shù)直接就用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
|
|