免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2669 | 回复: 9
打印 上一主题 下一主题

[文本处理] shell 提取csv 文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2019-04-10 22:46 |只看该作者 |倒序浏览
本帖最后由 jsb1993926 于 2019-04-12 03:16 编辑

请教各位需要写一个shell 名为cprocess.h
1.需要提取如下csv文件的第1.2.3列StudentID ,studentnetworkusername,以及studentname也就是说其他的信息不需要只需要前3个不重复的信息
2.之后再进行查重排除重复项比如学号100 的出现了两次那只提取一次



3.执行文件后输出结果为如下

请问应该用什么样方法呢
谢谢
input.rar (1.2 KB, 下载次数: 15)
另外请问一下
是否可以用./cprocess.h ./xxx.csv 命令直接执行该脚本?

csv.jpg (59.2 KB, 下载次数: 90)

csv.jpg

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
2 [报告]
发表于 2019-04-11 08:53 |只看该作者
发样本应该发文本,或者传文件附件,图片让人怎么试- - 先来个OCR?
未用你的样本测试,你自己试一下,可以用你说的格式,
csv文件在当前目录下,这样就可以了。
  1. ./cprocess.h xxx.csv
复制代码
  1. #!/usr/bin/awk -f
  2. BEGIN        {
  3.     FS=","
  4. }
  5. NR==1{
  6.     head=$1","$2","$3
  7. }
  8. NR>1{
  9.     a[$1]=$1","$2","$3
  10. }
  11. END{
  12.     print head
  13.     for (i in a)
  14.         print a[i]
  15. }
复制代码

论坛徽章:
0
3 [报告]
发表于 2019-04-12 03:15 |只看该作者
回复 2# cfwyy

非常感谢...不好意思 这个csv附件我传了4次一直传不上去今天传上去了
input.rar (1.2 KB, 下载次数: 7) 这是源文件  我想请问一下 如果我想更改head 的名称应该怎么做呢?
比如说我想要文件中D,F,I,A这几列的数据 然后head改名为 a b c d 应该怎么做呢?
比如最后处理结果像这样:


论坛徽章:
0
4 [报告]
发表于 2019-04-12 03:19 |只看该作者
回复 2# cfwyy

另外想请教一下如果我想让他处理完毕以后再生成一个   结果.csv 文件应该怎么做呢? 谢谢

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
5 [报告]
发表于 2019-04-12 08:18 |只看该作者
回复 3# jsb1993926

  1. #!/usr/bin/awk -f
  2. BEGIN        {
  3.     FS=","
  4. }
  5. NR==1{
  6.     head="d,a,b,c"
  7. }
  8. NR>1{
  9.     a[$1]=$1","$4","$6","$9
  10. }
  11. END{
  12.     print head
  13.     for (i in a)
  14.         print a[i]
  15. }
复制代码
  1. ./cprocess.h xxx.csv >res.txt
复制代码

论坛徽章:
0
6 [报告]
发表于 2019-04-14 08:06 |只看该作者

论坛徽章:
0
7 [报告]
发表于 2019-04-19 16:58 |只看该作者
awk -F"," '{print $1","$2","$3","$4}' input.csv | sort -n | uniq| sed 's/,StudentFirstName//; s/,Madonna$//' > tmp.csv
纯命令行模式

论坛徽章:
0
8 [报告]
发表于 2019-04-19 16:59 |只看该作者
awk -F"," '{print $1","$2","$3","$4}' input.csv | sort -n | uniq| sed 's/,StudentFirstName//; s/,Madonna$//' > tmp.csv
纯命令行模式

论坛徽章:
0
9 [报告]
发表于 2019-04-19 17:00 |只看该作者
awk -F"," '{print $1","$2","$3","$4}' input.csv | sort -n | uniq| sed 's/,StudentFirstName//; s/,Madonna$//' > tmp.csv
纯命令行模式

论坛徽章:
0
10 [报告]
发表于 2019-04-19 17:02 |只看该作者
awk -F"," '{print $1","$2","$3","$4}' input.csv | sort -n | uniq| sed 's/,StudentFirstName//; s/,Madonna$//' > tmp.csv


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP