免费注册 查看新帖 |

Chinaunix

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

求救!在shell中用什么方式将文件中字段取出最快? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-18 20:33 |只看该作者 |倒序浏览
在shell中用什么方式将文件中字段取出最快?取出的字段要做其他处理!
awk中怎么将取出的字段传出给shell做其他处理?  传出的是不是数组?怎么引用阿?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-06-18 20:54 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

awk,cut,sed都可以从文件中提取字段
1.直接在awk中进行处理
2.将输出重定向到一个文件中再进行处理

论坛徽章:
0
3 [报告]
发表于 2003-06-18 21:05 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

谢谢admirer!!
我用过cut,但效率太低。如果用awk又不知道如何将awk分离的数组取出在shell中做处理?

论坛徽章:
0
4 [报告]
发表于 2003-06-18 22:20 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

用perl不行吗?
perl擅长处理文本,调外部程序也很方便。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-06-18 22:45 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

原帖由 "czh927" 发表:
谢谢admirer!!
我用过cut,但效率太低。如果用awk又不知道如何将awk分离的数组取出在shell中做处理?
  
将awk的输出重定向到文件中,然后再对该文件进行处理。如:
awk '{print $X}' <infile >outfile  
或者将你的问题说出来,让大家帮你想办法。

论坛徽章:
0
6 [报告]
发表于 2003-06-18 23:42 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

将字段用分隔符分隔,最好别用缺省的空格或tab,把分隔符定义成别的符号,这样子取字段...........

论坛徽章:
0
7 [报告]
发表于 2003-06-19 07:40 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

原帖由 "lgjut" 发表:
用perl不行吗?
perl擅长处理文本,调外部程序也很方便。
   
同意你的观点,但是这里是SHELL区,我上几次用PERL回的程序好象不太受欢迎~嘿嘿~~

论坛徽章:
0
8 [报告]
发表于 2003-06-19 09:01 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

perl需要另外安装吧,我的电脑里没有.....

论坛徽章:
0
9 [报告]
发表于 2003-06-19 09:14 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

[quote]原帖由 "光明晓仙"]perl需要另外安装吧,我的电脑里没有.....[/quote 发表:
   
我在SUN OS 5.8下,默任就安装了PERL,要是没有安装一个也很容易~~~PERL
处理文本很强啊~~

论坛徽章:
0
10 [报告]
发表于 2003-06-19 11:50 |只看该作者

求救!在shell中用什么方式将文件中字段取出最快?

谢谢大家!
我也用过perl,确实很容易,很快。但是我想shell能不能更快一些呢?!

问题是这样:
定义文件a:其中第一个字段为一标识号,第二字段为数字
                1|10|ss|aa|
                1|100233|aa|bb|
                1|200333|aa|bb|

定义文件b:其中第一个字段为一标识号,第二字段和第三字段组成数字区间
                1|1|1000|
                2|100001|100999|
                3|200001|300999|
               
现在将文件a中的数字关联文件b,根据其在文件b中所在的数字区间取出不的标识号,
将取出的b中标识号替换a中的标识号。

这类似与数据库的操作:
update a set a.$1=(select b.$1 where a.$2 between b.$2 and b.$3);     

现在在shell中,程序速度的瓶颈就在分割字段上!因为a文件非常大。在perl中用split分割非常快,是cut的几万倍!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP