免费注册 查看新帖 |

Chinaunix

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

[文本处理] shell脚本调用perl [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2019-07-26 15:09 |只看该作者 |倒序浏览
请教各位一个问题;我有若干个文本文件,文件名input.1000,input.2000,以此类推,需要使用perl ./t1 input.1000逐个处理输入文件,产生数据文件output.dat,输出的文件实际只有一行,需要把其中的第二列浮点数字读取到result.dat里,然后用perl ./t1 clean清除掉output文件,然后接着处理input.2000等。求教哪位可以指导一下这个脚本如何写?谢谢。

论坛徽章:
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-07-26 16:46 |只看该作者
本帖最后由 cfwyy 于 2019-07-29 07:47 编辑

不清楚你output.dat的格式,假设空格分隔列的话
可以试试下面的。没有你的环境 自行测试。
  1. #!/bin/bash

  2. files=`ls input*`
  3. for f in $files
  4. do
  5.     perl ./t1 $f
  6.     echo {$f#input.} > result.dat
  7.     cut -f2 output.dat >> result.dat
  8.     perl ./t1 clean
  9. done
复制代码


论坛徽章:
0
3 [报告]
发表于 2019-07-26 17:32 |只看该作者
本帖最后由 gigisor 于 2019-07-26 17:34 编辑

回复 2# cfwyy

太感谢了。我试了一下,生成的result里面是空白,cut命令行应该没起作用。out.dat里面产生的数据格式如下,数字之间是Tab间隔:

  220   181.8182       39.8607       56.7135        2.3409       28.0158        0.3136       74.3155

另,如果我想把input后缀的1000,2000,也同时写入result应该如何操作。谢谢

论坛徽章:
12
2015年亚洲杯之乌兹别克斯坦
日期:2015-04-10 18:29:00狮子座
日期:2016-01-17 15:40:28处女座
日期:2016-01-16 17:36:17巨蟹座
日期:2016-01-16 17:35:48未羊
日期:2015-12-12 16:18:26青铜圣斗士
日期:2015-12-09 01:07:50IT运维版块每日发帖之星
日期:2015-12-05 06:20:00神斗士
日期:2015-12-03 23:13:59IT运维版块每日发帖之星
日期:2015-11-22 06:20:00IT运维版块每日发帖之星
日期:2015-11-08 06:20:00IT运维版块每日发帖之星
日期:2015-10-29 06:20:00IT运维版块每日发帖之星
日期:2016-06-30 06:20:00
4 [报告]
发表于 2019-07-29 00:56 |只看该作者
为啥还要生成中间的结果文件, 直接获取结果进行处理放到result 文件里不行吗, 以追加的形式

论坛徽章:
1
19周年集字徽章-年
日期:2020-10-29 09:39:21
5 [报告]
发表于 2019-07-29 09:38 |只看该作者
没有看懂,问题描述得不清楚。

论坛徽章:
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
6 [报告]
发表于 2019-07-29 15:07 |只看该作者
回复 3# gigisor

已更新。

论坛徽章:
1
19周年集字徽章-年
日期:2020-10-29 09:39:21
7 [报告]
发表于 2019-07-30 14:07 |只看该作者
既然已经用perl了怎么还要借助Shell,直接写了不就好了。

论坛徽章:
0
8 [报告]
发表于 2019-08-12 10:57 |只看该作者
非常感谢楼上各位,问题已解决。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP