Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用awk命令在perl中解析文件_Regex_Perl_Awk - Fatal编程技术网

Regex 使用awk命令在perl中解析文件

Regex 使用awk命令在perl中解析文件,regex,perl,awk,Regex,Perl,Awk,我正试图从以下输入文件input.txt中实现一些功能: 现在我想要op.txt: 说明: 1) 只需要一个记录(电子邮件)一次。 2) 对于相同电子邮件ID的所有记录,需要第二列+第三列($2+3)的总和。 e、 g: 文件包含两个ron@xyz.com 第一行(8+10)加第二行(9+11)的和等于38。 如果shell脚本更可行,那么我可以使用它。 编辑: 我确实尝试了以下命令,但我不知道如何将两者集成,因为第一个命令会找到指定关键字的总和: cat input.txt | grep "r

我正试图从以下输入文件input.txt中实现一些功能:

现在我想要op.txt:

说明:
1) 只需要一个记录(电子邮件)一次。
2) 对于相同电子邮件ID的所有记录,需要第二列+第三列($2+3)的总和。
e、 g:
文件包含两个ron@xyz.com

第一行(8+10)加第二行(9+11)的和等于38。
如果shell脚本更可行,那么我可以使用它。

编辑:
我确实尝试了以下命令,但我不知道如何将两者集成,因为第一个命令会找到指定关键字的总和:

cat input.txt | grep "ron@" | awk '{print $1+$2}'|paste -sd+ | bc

这一个为第一列查找唯一的条目:

cat input.txt |awk '{print $1}'|uniq

如果input.txt有更多要添加的列,则此命令将更有用


awk'{for(i=2;i首先,你自己试试看,看看你有什么想法。然后我们可以帮助你。其次,我不明白“在perl中使用awk命令”是什么意思。
(8+10)+(9+11)
为38,而不是28。的预期值为jack@abc.com看起来也是错误的。@F.J抱歉,我的错误编辑了问题。在发布问题之前,我尝试过编辑问题,抱歉,我没有这么早提到。
  ron@xyz.com   8  10
  ron@xyz.com   9  11
cat input.txt | grep "ron@" | awk '{print $1+$2}'|paste -sd+ | bc
cat input.txt |awk '{print $1}'|uniq
awk '{
    a[$1]+=$2+$3
}
END {
    for (i in a)
        print i, a[i]
}' input.txt > op.txt