当前位置:  技术问答>linux和unix

shell编程问题!(从文件取记录,去重,累加)在线等!

    来源: 互联网  发布时间:2016-04-08

    本文导语:  有一个文件file里面有多条(行)记录,现在要从文件从提取某些记录,  输出货物代码以及相应的利润,货物代码是记录中从第5位开始长度是10,利润是从第20位开始长度是4,要求输出的结果类似下面  1111111111 0.30...

有一个文件file里面有多条(行)记录,现在要从文件从提取某些记录, 
输出货物代码以及相应的利润,货物代码是记录中从第5位开始长度是10,利润是从第20位开始长度是4,要求输出的结果类似下面 
1111111111 0.30 
2222222222 0.50 
1111111111 0.31 
想上面输出的那样,有重复的货物代码,就要输出一个,并且要把相应的利润累加起来,上面的例子期望的结果就是 
1111111111 0.61 《-------- 0.30与0.31加起来 
2222222222 0.50 
请问该怎么写shell程序  用awk 或是别的  

|
重新提交下,改了几个问题

代码保存为test.pl文件: 

#!/usr/bin/perl -w
use strict;
my %result = ();
my $goods = "";
my $profit = "";
while (  ) {
$goods = substr $_, 4, 10;
$profit = substr $_, 19, 5;
$result{$goods} += $profit;
}
foreach $goods ( sort keys %result ) {
printf "%s %.02fn", $goods, $result{$goods};
}

输入文件保存为list.txt: 
    1111111111      0.30 
    2222222222      0.50 
    1111111111      0.31 
    3333333333      0.45 
    1111111111      1.11    

执行./test.pl list.txt,实现取记录,去重,累加,排序后的输出: 
1111111111 1.72
2222222222 0.50
3333333333 0.45

|
awk -F'n' '{arr[substr($0,5,10)]+=strtonum(substr($0,20,5)) } END {for(i in arr )printf i" " arr[i]"n"}' test.txt

    
 
 

您可能感兴趣的文章:

  • 编写一段B-Shell脚本程序,读入10个整数,打印它们的累加和
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • Linux下的编程指的就是Shell编程吗?
  • 那里有《shell编程》和关于curses编程的教程可以下载,请帮忙?
  • C编程与shell编程有什么区别,两者有没有从属关系?
  • Linux C编程一站式学习,高级shell Bash脚本编程指南,
  • shell 编程 执行shell新建多个终端 并执行程序
  • Linux命令、编辑器与Shell编程 和 UNIX SHELL范例精解(第4版) 区别大么?
  • Shell编程的,可以在shell中访问多行的属性吗?如:
  • 刚学Shell编程,问个关于Shell中if语句的问题
  • 如何学UNIX的SHELL编程
  • 请推荐基本shell编程书籍
  • 请大家推荐一本shell编程方面的书
  • 给我推荐点shell编程的学习资料。
  • 谁有linux shell编程方面比较好的语法资料哦?
  • 关于Shell编程???
  • 学好SHELL编程能从事什么职业?
  • IP地址数字互转 iis7站长之家
  • 关于shell编程的小问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • 请教 一个shell问题 如何通过shell获得一个日志文件中的增量部分
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • 在调用shell的程序文件时,怎样才能使编译后的可执行文件运行,象在shell状态下那样直接用咋不行呢?
  • shell:sql问题,如何shell循环将不同表数据写入文件中...
  • 在shell命令行中敲一个可执行文件,起一个进程pc,这个进程属于shell进程
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • 请教:shell遍历文件夹,处理其中的文件。
  • 急!如何从一个shell文件中传递一个参数到sql文件中,不能用存储过程
  • shell脚本剪切文件文件,并生成新文件的问题
  • shell 按当前时间作为文件名建立文件夹
  • 我想写一个shell脚本 把当前文件夹下的所有文件名改名
  • 请问如何用shell脚本将一个文本文件的某几行输入到另一个文件中。
  • 如何删除目录中文件名小于某个字符串的所有文件 shell
  • 求一个shell脚本 统计文件数目并删除一些文件
  • 怎么用shell创建连续文件名的文件??
  • 合并一个文件夹下多个文件内容的单行shell命令
  • Shell获取文件的文件名和扩展名的例子
  • 如何写shell脚本 把文件移到文件名对应的文件夹
  • linux bash shell命令:grep文本搜索工具简介
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 怎么知道当前是B_SHELL 还是C_SHELL


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3