免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: skycity0210
打印 上一主题 下一主题

谁能帮我处理如下的文件?(以文件的某一行排序后重组)谢谢了!!  关闭 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
41 [报告]
发表于 2005-11-18 15:28 |只看该作者
上述摘抄为译文,原文请参见:
http://www.tnx.nl/php

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
42 [报告]
发表于 2005-11-18 15:31 |只看该作者
原帖由 HonestQiao 于 2005-11-18 15:27 发表
你说的很有道理。

不过php我继续用,perl我也继续用。

条条大道通罗马,365行行行出状元。

他们都很好用。

他们都是我的工具,我是他们的主人,我不是他们的奴隶。

工欲善其事,必先利其器。
他们也都是我的工具,不过我喜欢用正确的工具做正确的事。好比 PHP 的 CLI,实在不值一晒,因为不知道优点/长处在哪儿?
好比今天这个题目,用 php 做起来就太不划算了。

论坛徽章:
0
43 [报告]
发表于 2005-11-18 16:10 |只看该作者
原帖由 flw 于 2005-11-18 14:18 发表

我刚才又把变量名改短了些,现在是 152 个字符了。





  1. cat -n file|sed -n '/\..\{8,\}$/p'|sort -t"=" -k2|cut -f1|xargs -i awk 'NR>{}-10&&NR<{}+3' file|sed '/N/{y$3254$2345$}'
复制代码


120 !

[ 本帖最后由 dbcat 于 2005-11-18 16:11 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
44 [报告]
发表于 2005-11-18 16:13 |只看该作者
原帖由 dbcat 于 2005-11-18 16:10 发表





  1. cat -n file|sed -n '/..{8,}$/p'|sort -t"=" -k2|cut -f1|xargs -i awk 'NR>{}-10&&NR<{}+3' file|sed '/N/{y$3254$2345$}'
复制代码


120 !

[flw@BuildServer shell]$ cat -n file|sed -n '/\..\{8,\}$/p'|sort -t"=" -k2|cut -f1|xargs -i awk 'NR>{}-10&&NR<{}+3' file|sed '/N/{y$3254$2345$}'
sed: -e expression #1, char 17: extra characters after command
xargs: awk: terminated by signal 13

论坛徽章:
0
45 [报告]
发表于 2005-11-18 16:17 |只看该作者
sed --version  4.05
awk --version  3.1.1

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
46 [报告]
发表于 2005-11-18 16:21 |只看该作者
哈哈!
刚才看了一下你的思路,你的程序是错的哦~
是用眼睛算出来的!

[ 本帖最后由 flw 于 2005-11-18 16:23 编辑 ]

论坛徽章:
0
47 [报告]
发表于 2005-11-18 16:27 |只看该作者
是吗?
na结果ne?

man sed

y/source/dest/
              Transliterate the characters in the pattern space  which  appear
              in source to the corresponding character in dest.

论坛徽章:
0
48 [报告]
发表于 2005-11-19 18:06 |只看该作者
原帖由 flw 于 2005-11-18 16:21 发表
哈哈!
刚才看了一下你的思路,你的程序是错的哦~
是用眼睛算出来的!



hehe,maybe u r right..........


Look at this one:

file p2:
  1. grep -n DR f|sort -k2|cut -d: -f1|xargs -i awk 'NR<{}+3&&NR>{}-10' f>t;grep U t|cut -d= -f2|tr "n"
  2. "|"|xargs -i sed '/N/{y!{}!1|2|3|4|5|!}' t
复制代码


And the more tricky one:
file p1
  1. grep -n DR f|sort -k2|cut -d: -f1|xargs -i awk 'NR<{}+3&&NR>{}-10' f|sed '/N/{y$3254$2345$}'
复制代码


$ ls -l p1 p2
-rw-r--r--    1 tory     ruleno1        93 Apr 11 21:04 p1
-rw-r--r--    1 tory     ruleno1       143 Apr 11 21:05 p2



思路:
First sort the fields by DRILL_SIZE:
   grep -n DR file|sort -k2|cut -d: -f1|xargs -i awk 'NR<{}+3&&NR>{}-10' file

Second change the NUM=? fields

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
49 [报告]
发表于 2005-11-21 08:28 |只看该作者
呵呵,flw所说的眼睛算是指sed 'y///'的部分

论坛徽章:
0
50 [报告]
发表于 2005-11-21 08:42 |只看该作者
grep -n DR f|sort -k2|cut -d: -f1|xargs -i awk 'NR<{}+3&&NR>{}-10' f>t;grep U t|cut -d= -f2|tr "\n"
"|"|xargs -i sed '/N/{y!{}!1|2|3|4|5|!}' t

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP