`
binbin8497
  • 浏览: 46437 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

文件按某一字段合并的问题

阅读更多

做一个测试,按某一条件分出来的汇总结果在两个文件中:
1.txt
[code]    140 上海市
    131 北京市
     98 山东省
     83 河南省
     78 广东省
     62 辽宁省
     53 河北省
     44 天津市
     39 江苏省
     35 吉林省
     34 湖北省
     32 四川省
     30 黑龙江省
     29 华南理工大学
     21 浙江省
     21 陕西省
     21 山西省
     18 广东外语外贸大学
     15 上海交通大学
     15 美国
……[/code]
2.txt
[code]964 上海市
    617 广东省
    504 江苏省
    424 湖北省
    304 浙江省
    240 四川省
    209 福建省
    207 北京市
    197 湖南省
    167 安徽省
    145 陕西省
    139 山东省
    127 江西省
     96 河北省
     89 重庆市
     87 河南省
     64 云南省
     51 辽宁省
     50 黑龙江省
     50 甘肃省
……[/code]
前面为数值,后面为地区。
有什么简便的方法可以以地区为关键字把两个文件中的数据并到一行去?
结果类似以下的形式:
[code]    上海市 140 964
    北京市 131 207
     山东省 98 139
     河南省 83 87
……
美国 15 0[/code]
同一地区不一定会在两个文件中都记录,比如1.txt中的美国在2.txt中会没有。

 

cat a.sh
#!/bin/sh

if [ $# -ne 2 ];then
        echo "Usage:$0 file1 file2"
        exit
fi

[code]cat $1 $2|awk '{print $2}'|sort|uniq|while read line;do
        num1=`grep "$line" $1|awk '{print $1}'`
        num2=`grep "$line" $2|awk '{print $1}'`

        if [ -z "$num1" ] ;then
                echo $line $num2|awk '{printf "%-20.20s\t%10d\t%10d\n",$1,0,$2}'
        elif [ -z "$num2" ] ;then
                echo $line $num1|awk '{printf "%-20.20s\t%10d\t%10d\n",$1,$2,0}'
        else
                echo $line $num1 $num2|awk '{printf "%-20.20s\t%10d\t%10d\n",$1,$2,$3}'
        fi
done[/code]

结果
[code][Bossdev]$ sh a.sh 1.txt 2.txt
安徽省                           0             167
北京市                         131             207
福建省                           0             209
甘肃省                           0              50
广东省                          78             617
广东外语外贸大学                18               0
河北省                          53              96
河南省                          83              87
黑龙江省                        30              50
湖北省                          34             424
湖南省                           0             197
华南理工大学                    29               0
吉林省                          35               0
江苏省                          39             504
江西省                           0             127
辽宁省                          62              51
美国                            15               0
山东省                          98             139
山西省                          21               0
陕西省                          21             145
上海交通大学                    15               0
上海市                         140             964
四川省                          32             240
天津市                          44               0
云南省                           0              64
浙江省                          21             304
重庆市                           0              89[/code]

就是结果的顺序不一致

分享到:
评论

相关推荐

    【Python_009】按照excel中某字段拆分文件到多个excel

    本篇学习它的逆向操作:按照excel中某字段拆分文件到多个excel 写在前面的Tips: 先找出数据中想要按照哪个字段拆分,提取该列并去重,存入列表中 套一个循环,把数据子集提取出来 输出 可在循环中加入print,以便...

    基于Jasperreport动态单元格合并模板

    例如,当数据按某一字段进行分组并呈现时,可能需要合并相同分组下的单元格以增强可读性。JasperReport提供了API和表达式语言(JasperReport Scriptlet)来实现这一功能。 1. **动态单元格合并**:在JasperReport中...

    LayUiTable表单相同参数的单元格合并

    在IT领域,尤其是在前端开发中,LayUI是一个广受欢迎的轻量级前端框架,它提供了丰富的组件,如表格(Table...对于压缩包文件"tableMerge",它可能包含了一个示例代码或者相关的配置文件,可以作为实践这一功能的参考。

    DataGrid表头合并和单元格内容合并-升级版

    例如,如果同一组数据的某字段值相同,那么可以合并这些单元格,只显示一次该值。 在"headerSpan.sln"这个解决方案文件中,很可能包含了实现这一功能的完整项目,包括源代码、设计视图以及可能的资源文件。而...

    找出文件中包含指定字段的文件的shell脚本

    `cat`命令用于合并并打印文件内容。 5. **`for n in $f; do`...`done`**:这是一个for循环,遍历`f`变量(即`list.txt`中的每一行,也就是每个文件路径)。 6. **`r=`egrep 'abc' $n`**:`egrep`是一个增强版的`...

    修改EHLib控件可合并单元格

    首先,我们来看“有条件地隐藏DBGridEh某一单元格的值”。在数据库应用中,有时我们需要根据特定条件对数据显示进行控制,例如隐藏重复的值。DBGridEh提供了`HideDuplicates`属性,用于隐藏重复的行或列。但仅使用`...

    cxGrid单元合并(绑定数据记录)

    这些文件共同构成了一个使用cxGrid进行数据绑定和单元格合并的Delphi应用实例。通过分析和调试这些文件,我们可以深入理解cxGrid的用法以及如何在实际项目中实现单元合并和数据绑定。这个过程对于提升Delphi应用开发...

    用word邮件合并并且产生独立word文件+明细20171221.zip

    在IT领域,尤其是在办公自动化和数据处理中,Word的邮件合并功能是一个强大的工具,它可以将Excel中的数据批量导入到Word文档中,生成一系列定制化的文件。这个过程在处理大量重复但有个性化差异的信息时非常实用,...

    Devexpress Gridcontrol 合并行,列头

    标题"Devexpress Gridcontrol 合并行,列头"指的是在GridControl中实现行和列头的合并,这是一种常见的需求,用于优化数据布局,尤其是在显示大量表格数据时。 在Devexpress GridControl中,合并行和列头主要涉及到...

    arcgis工具

    使用一个属性字段作为超链 在内容表中右击包含一个超链接字段的图层,然后点击properties ,单击Display选项卡。选中Supprt Hyper3. Hyperlinks using field选项,单击下拉箭头并点击一个字段。 单击Document or URL...

    ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析.doc

    * 如果源数据的字段属性相同,则可以用 append 合并多个 shapefile 文件为一个 * 图形:append 可以合并点、线、多边形等要素类和表、栅格影像及栅格目录,但必须是相同类型的 * 属性表:同输出要素类的属性表。输入...

    jqgrid合并单元格.rar

    1. **合并行**:在jqGrid中,如果某一行的某些单元格具有相同的值,我们可以通过比较这些值并应用特定的CSS类来实现行合并。这通常需要在rowattr函数中进行操作,检查当前行的数据并与前一行对比。当发现连续几行的...

    GridView合并单元格

    2. **合并逻辑**:在数据源处理阶段,根据需要合并的规则(例如,如果连续几行有相同的值,则合并这些行的某一列)进行数据处理。这可以通过遍历数据源,比较相邻行的特定字段,当发现相同值时,增加一个计数器,...

    POI读取Excel合并单元格并储存

    例如,如果"姓名"列的某一行合并了3个单元格,那么你可以获取第一个单元格的值作为完整的姓名。注意,当处理合并单元格时,可能需要跳过或忽略后续的单元格,以避免重复赋值。 最后,将获取到的数据存储到实体类中...

    输油管道问题 算法设计

    从给定的文件信息来看,标题为“输油管道问题 算法设计”,描述较为模糊,仅提及了资源在特定环境下可能无法运行,但整体可用。标签则明确指向了“最短问题”和“算法设计”。代码部分展示了一个用C语言编写的程序,...

    动态设置显示kendoui grid控件某一列的格式

    本篇文章将深入探讨如何动态地设置Kendo UI Grid中某一列的显示格式,特别是涉及到日期选择器(DatePicker)的自定义过滤功能。 首先,理解`kendoui grid customfilter`标签,这通常意味着我们需要实现自定义的过滤...

    实现安卓文件断点续传

    在断点续传中,我们发送带有"Range"头的GET请求,指示服务器只返回文件的某一部分。例如,如果已下载了前500KB,请求可能包含"Range: bytes=500KB-”。 4. 多线程下载: 为了提高下载效率,可以使用多线程同时下载...

    C#在DataGridView控件中实现合并单元格

    摘要:C#源码,数据库应用,合并单元格,DataGridView Vs2008编程实例:在C#的DataGridView控件中实现合并单元格,因为数据库文件遗失了,所以演示效果什么也没看到,不过源代码还在,可根据源码还原出数据库,最主要的...

    Delphi流文件操作

    如将图片文件保存到数据库,那么数据库中的图片数据就变成非文件数据了,它只属于某记录某字段的数据。而诸如网络上传输的数据、内存中的存储的数据等也都属于非文件数据,这些数据要转变成文件也需要流操作。 在...

    java 导入及判断的Excel 使用方法

    在Java编程中,处理Excel文件是一项常见的任务,无论是读取数据、写入数据还是进行复杂的分析,Excel都因其直观的格式和广泛的应用而备受青睐。本文将深入探讨Java中导入和判断Excel的使用方法,结合实例分析,帮助...

Global site tag (gtag.js) - Google Analytics