Linux 中用grep命令 辅助excle筛查数据

问题:因为要对多个年度的多个工作的相关于人员进行匹配,以形成人员信息详细表,要从总表中根据项目人员名单进行筛出。最常用是excle 中的VULOOUP 函数,但是由于人员信息详表中有格式、内容方面的问题,无法实现,所以想到了用linux的grep命令,进行批量筛选。

一、总表、数据来源的创建

将人员详情excle表中的内容复制到文本文件中。这里推荐用vim的粘贴功能。vim b 后,需要输入命令:

:set mouse-=a

然后就可以粘贴了。

1.注意检查新建文本中的行数和excle复制的行数是否相同,如果行数变多,说明excle中的部分单元格内有换行或者空行等, 要用字符填充或者进行修改。然后重新复制。

2.不建议用windows自带的记事本来操作,因为字符编码,标点、空格、换行等问题。所以直接用vim + 复制粘贴。

  1. 如果不想每次都手动输入 :set mouse-=a 来实现vim的粘贴功能,可以在当前用户的根目录下创建配置文件 .vimrc 。 下面用cat 命令显示一下该配置文件的内容

    cat .vimrc

    if has('mouse')
    set mouse-=a
    endif

二、单个项目人员表的准备

同样用vim新建文本 a,将相关项目人员的内容粘贴进去,注意不要有空行,直接 dd 删除最后的空行即可保存。

三、使用 grep -f 命令进行数据筛出

grep -f a b >/home/Public/c.txt

该命令的作用是,按照文件a内的每一行的名字,去查b中是否有相同名字的内容,如果有,则将b中的该行内容,输出到 c.txt 文件中。

换句话说,就是以a文本的内容作为筛出条件,查看b文本中对应人名行的数据,并保存到c.txt中。

打开c.txt,复制内容到 单个项目人员的详情表内即可。这里假设为 项目人员详情.xlsx

四、反向筛出

如果某个项目有15个人参与,但只筛出了12个人的信息,则说明人员详情总表中缺少了3个人的详细信息的记录,要找出这3个人是谁,则在 项目人员详情.xlsx中复制人员名称,用vim c 粘贴,创建新的比对文件。

grep -vf c a >/home/Public/c.txt

上述命令的含义是,找出a中和c不一样的内容。 第三步是找出相同的内容,参数 -f ;找不同 -vf

相关推荐
余胜辉19 天前
机器人构建详解:售前售后服务客服机器人与广告生成机器人的微调数据处理方法
数据清洗·大模型微调·知识库查询与构建
Shaidou_Data20 天前
大数据在不同行业中的应用场景及经济效益分析
大数据·数据治理·数据清洗·数据提取·数据资源
weixin_4483505022 天前
探索数据确权、隐私保护、安全共享等方面的挑战与解决方案
大数据·网络·安全·数据治理·数据清洗
蓝皮怪1 个月前
澳洲房产市场数据清洗、聚类与可视化综合分析
数据挖掘·聚类·数据清洗
青云交1 个月前
大数据新视界 -- 大数据大厂之 Hive 数据质量保障:数据清洗与验证的策略(上)(17/ 30)
大数据·数据清洗·数据验证·噪声处理·hive 数据质量·一致性验证·缺失值填补
青云交1 个月前
大数据新视界 -- Hive 查询性能优化:索引技术的巧妙运用(下)(6/ 30)
大数据·数据清洗·电商数据·数据整合·hive 数据导入·多源数据·影视娱乐数据
青云交1 个月前
大数据新视界 -- 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)
大数据·数据清洗·电商数据·数据整合·hive 数据导入·多源数据·影视娱乐数据
Shaidou_Data1 个月前
信息技术引领未来:大数据治理的实践与挑战
大数据·人工智能·数据清洗·信息技术·数据治理技术
Shaidou_Data2 个月前
数据清洗的具体方法有哪些?
大数据·数据挖掘·数据分析·数据治理·数据清洗·1024程序员节
~提线木偶2 个月前
【SQL|大数据|数据清洗|过滤】where条件中 “ != “ 和 “ NOT IN() ” 对NULL的处理
大数据·数据库·sql·数据清洗