杨超

杨超的博客

他的个人主页  他的博客

提取多个文件的第二列相加并输出(awk)

杨超  2010年08月17日 星期二 22:46 | 1502次浏览 | 0条评论

awk -F, 'NR==FNR{a[FNR]=$2;}NR>FNR{a[FNR]+=$2;if(FILENAME==ARGV[ARGC-1])printf a[FNR]"\n";}' $merge >$1

#!/bin/bash
# merge.sh

if [ $# -ne 2 ]
then
 echo "I need exactly 2 parameters"
 exit 1
fi

# 解析shell命令行参数,生成输入文件列表传递给awk,例如"file 100"解析为"file.0 file.1 file.2 …… file.99 file.100"

merge=""

for((i=0;i<=$2;i++))
{
        merge=$merge"$1.$i "
}

# 处理第一个输入文件时初始化,中间的累加,并在处理完最后一次累加后输出结果

awk -F, 'NR==FNR{a[FNR]=$2;}NR>FNR{a[FNR]+=$2;if(FILENAME==ARGV[ARGC-1])printf a[FNR]"\n";}' $merge >$1

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !

暂时没有评论

Zeuux © 2024

京ICP备05028076号