免费注册 查看新帖 |

Chinaunix

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

[文本处理] 呼叫@yinyuemi大牛进来,不会说我没礼貌吧? [复制链接]

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-04-13 09:58 |显示全部楼层 |倒序浏览
本帖最后由 bmne 于 2017-04-13 10:10 编辑



因看到你的脚本后,实在是五体投地

今就没礼貌一次。原谅!

还是提高效率的问题(不好解决,所以呼叫)

问题:a  b  各种字符的文档混合(混搭),我知道的几个不同的命令(不放出来了),a b文档稍大一点后,基本解决不了效率的问题,只能凑合着用,慢慢等待输出结果
a.txt
a
b
c
b.txt
1
2
输出
a1
a2
b1
b2
c1
c2

不敢奢望进一步的要求,三个文档混合(其实我特别渴望这个)。更慢的要死。如: a  b  c  这三个文档混合

慢的理由:比如  a=3GB b=10MB   或 a=10MB  b=3GB   或 a=300MB  b=60MB   等等,我表明意思即可

实战中,最终输出结果<20GB  正常在10GB以下  大部分在2-4GB范围

如果你的命令或代码能在混合以前,先预判一下混合后的文档(大概)大小是多少,给出提示,再决定是否下一步,最完美了(便于估计硬盘空间够不够)


请大牛空闲时间帮助下

你若不进来,连看都不看,我一点意见也没有。谁让我没礼貌来者?没理由说必须要帮助我,我知趣

不管怎样,先说声谢谢,辛苦了

等待看看运气如何





论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
2 [报告]
发表于 2017-04-13 15:40 |显示全部楼层


虽然我是求助yinyuemi  大牛,但,人家不一定来,不一定有时间

真诚希望对此有研究的大牛出手啊

别认为我求助了yinyuemi   你就不出手了。我真心求助的

一并谢谢了!

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
3 [报告]
发表于 2017-04-13 19:26 |显示全部楼层
回复 3# yinyuemi



谢谢大牛的到来,你来了就可以了,不奢望你穷尽全力研究这个问题

估计这个问题没引起你的兴趣,没让你眼睛一亮。

但,谢谢你上面的出手

辛苦了感谢!







论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
4 [报告]
发表于 2017-04-14 07:41 |显示全部楼层
回复 3# yinyuemi


大牛,真心希望得到你的帮助。绝没恶意。谢谢正确理解

测试对比了一下
用的数据是
a.txt
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
b.txt
2
3
4
5
6
7
8
输出结果总结对比:(可把a.txt b.txt文件名颠倒一下再测试)

当a.txt大于大于b.txt时
输出结果:(在每一行中)b.txt的数据在行后 a.txt的数据在行前。你的命令没有优势
              (在每一行中)a.txt的数据在行后 b.txt的数据在行前。你的命令还可以使用,但优势不是特别明显

当b.txt大于大于a.txt时
输出结果:(在每一行中)b.txt的数据在行后 a.txt的数据在行前。你的命令还可以使用,但优势不是特别明显
              (在每一行中)a.txt的数据在行后 b.txt的数据在行前。你的命令还可以使用,但优势不是特别明显









论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
5 [报告]
发表于 2017-04-16 16:40 |显示全部楼层




到此吧,不求助了。估计有难度

我又不能一一求助大牛进来。比如:   jason680          等等太多


不能追求完美,凑合着用现有的即可。   谢谢各位




论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
6 [报告]
发表于 2017-04-16 19:14 |显示全部楼层
本帖最后由 bmne 于 2017-04-16 19:17 编辑

回复 7# jason680


谢谢大牛,没想到休息日有时间进来。惊喜中

可能我笨,可我感觉我说的很明白了。不好意思

一、我求助的主题应该是说明白了吧?(主要是求助ab混合时,效率高一些的命令。参看1楼的内容)

二、如果非要归类,应该是归到“特解”中

三、我5楼中已经把要求的“特解”详细分类给提供出来了
     再解释下“特解”详细分类:
      1、当a.txt大于大于b.txt时(即a是大文件 b是小文件)。混合后的输出结果有两种情况:
           b.txt在后面 a.txt在前面混合输出   请给出命令
           a.txt在后面 b.txt在前面混合输出   请给出命令
      2、当b.txt大于大于a.txt时(即b是大文件 a是小文件)。混合后的输出结果有两种情况:
           b.txt在后面 a.txt在前面混合输出   请给出命令
           a.txt在后面 b.txt在前面混合输出   请给出命令
      3、当a.txt与b.txt的文件大小基本相等时(比如:a.txt=40MB  b.txt=30MB)。这种情况不讨论了。采用上面1 2项给出的命令实验即可

     解释下什么叫“b.txt在后面 a.txt在前面混合输出”。比如
       a.txt
       a
       b
       c
       b.txt
       1
       2
       混合输出:
       a1
       a2
       b1
       b2
       c1
       c2

      另,上面1、2项中,根据效率给出命令即可。不一定非要共4条命令。


谢谢大牛,辛苦







论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
7 [报告]
发表于 2017-04-17 08:10 |显示全部楼层



大牛辛苦了

看来你继续采用的是“通解”型。太厉害了
别生气,我说实话。我的上一个求助。yinyuemi大牛的“特解”很厉害的,让人折服。但,你的“通解”也算可以
这次你继续采用“通解”,证明效率方面还是一种正确的选择

我以前回复过“本友会机友会摄友会”,我说我笨,考试零分不过瘾比较喜欢负分(因为他总让我云里雾里,所以我只能这样)
但,这次给你说,我就不相信就我一个笨人。我的意思,感谢你给上课(给我上课用的字符最多),太棒啦,估计旷课的人不会太多(请看浏览次数)

如果非要“鸡蛋里面挑骨头”
唯一遗憾:混合前,根据a  b 先预测一下输出结果的大小,就完美了(别事后预测,这样省工省时),请给个单独的命令?

不敢再麻烦你关于效率的问题了,怕你说我,我都给你两个这方面的脚本了,你还不会?


感谢感谢感谢!




另,说点已经没意义的事(再次证明我笨

-----------------------------------------------
你认为是四种,其实只有两种
(结果(内容)相同,只是排列先后不一样...)
a1     a1
a2     b1
b1     c1
b2     a2
c1     b2
c2     c2

最后两种,只是在打印有差别而以...
一是 print $0 a[n]           #  a1
一是 print a[n] $0           #  1a
------------------------------------------------
解释下,我为什么要说是四种情况

实战中发现的
同一条命令,因a b的文档大小不同,并且a b先后顺序不同。结果,输出效率不一样

比如(这里只是比如,因yinyuemi大牛已经给出排序)

1、当a.txt大于大于b.txt时(即a是大文件 b是小文件)
awk 'FNR==NR{a[$0];next}{for(i in a)print $0 i}' a  b
awk 'FNR==NR{a[$0];next}{for(i in a)print $0 i}' b  a

2、当b.txt大于大于a.txt时(即b是大文件 a是小文件)
awk 'FNR==NR{a[$0];next}{for(i in a)print $0 i}' a  b
awk 'FNR==NR{a[$0];next}{for(i in a)print $0 i}' b  a

我的意思
上面1、2项中,根据效率给出理想命令即可。不一定非要共4条命令。
希望在“特解”中用命令能解决这个问题







论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
8 [报告]
发表于 2017-04-17 09:22 |显示全部楼层
回复 11# jason680



谢谢大牛

我敢断言,我相信很多人都会进来学习的

我只是“不要脸”,因为实战原因,喜欢冲锋在前罢了


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP