免费注册 查看新帖 |

Chinaunix

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

[文本处理] 读文件求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-04-10 14:33 |只看该作者 |倒序浏览
文件内容:
ac|b|c|d|cc
1 |2|3|4|5

要求输出第1行包含字符c的字段,且输出格式为:
ac=1|c=3|cc=5

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
2 [报告]
发表于 2015-04-10 14:48 |只看该作者
  1. [seesea@UC ~]$ awk -F'|' 'NR==1 {for(i = 1; i <= NF; ++i) ar[i] = $i}; NR == 2 {for (i = 1; i <= NF; ++i) if (ar[i] ~ /c/) {printf "%s%s", ar[i] "=" $i, (i==NF ? "\n" : "|")} }' ttt      
  2. ac=1 |c=3|cc=5
复制代码
咦,1 后面有空格。。。

论坛徽章:
0
3 [报告]
发表于 2015-04-10 14:53 |只看该作者
回复 2# seesea2517


    nice , 有空格不碍事的!

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
4 [报告]
发表于 2015-04-10 15:05 |只看该作者
本帖最后由 zsszss0000 于 2015-04-10 15:12 编辑
  1. awk -vFS="|" '{for(i=1;i<=NF;i++){if(a[i]==""){a[i]=$i}else{a[i]=a[i]"="$i}}}END{for(i in a){if(a[i]~/c/)print a[i]}}' file      
复制代码
  1. awk -vFS="|" '{for(i=1;i<=NF;i++){if(a[i]==""){a[i]=$i}else{a[i]=a[i]"="$i}}}END{for(i in a)intf a[i]"|"}}' file       | sed 's/|$//g'
复制代码

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
5 [报告]
发表于 2015-04-10 15:28 |只看该作者
回复 3# zhxjfl


   

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
6 [报告]
发表于 2015-04-10 16:33 |只看该作者
  1. awk -F\| 'NR==1{while(++i<=NF)a[i]=$i;next}{while(++j<=NF){s=s?a[j]~/c/?s"|"a[j]"="$j:s:a[j]"="$j}print s}' inputfile
复制代码

论坛徽章:
0
7 [报告]
发表于 2015-04-10 16:53 |只看该作者
回复 6# 我是一隻羊


   

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
8 [报告]
发表于 2015-04-10 17:00 |只看该作者
本帖最后由 drakness 于 2015-04-10 17:03 编辑
  1. awk -F'|' -v ORS='|'  '{for(i=0;i++<NF;)if($i~/c/)a[i]=$i"="}END{for(i=0;i++<NF;)if(a[i])print a[i]$i}'  urfile
复制代码
结果是这样的,能力有限,最后多处个“|”
  1. ac=1 |c=3|cc=5|
复制代码

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
9 [报告]
发表于 2015-04-10 17:13 |只看该作者
本帖最后由 zsszss0000 于 2015-04-10 17:14 编辑

编辑 我发现咱两的思路是一样的啊
sed 's/|$//'去除    回复 8# drakness


   

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
10 [报告]
发表于 2015-04-10 17:20 |只看该作者
回复 9# zsszss0000


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP