免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1275 | 回复: 8

[文本处理] 帮助指定文件 组合 [复制链接]

论坛徽章:
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
发表于 2017-06-09 09:00 |显示全部楼层



假如:
我已有3个已知的文件
1.txt
  1. 8
复制代码

2.txt
  1. a
  2. b
复制代码

3.txt
  1. E
复制代码


要求:根据已知的三个文件1.txt  2.txt  3.txt  组合成只含有3个字符串组合的行

输出:
  1. 888
  2. 88a
  3. 88b
  4. 88E
  5. 8a8
  6. 8aa
  7. 8ab
  8. 8aE
  9. 8b8
  10. 8ba
  11. 8bb
  12. 8bE
  13. 8E8
  14. 8Ea
  15. 8Eb
  16. 8EE
  17. a88
  18. a8a
  19. a8b
  20. a8E
  21. aa8
  22. aaa
  23. aab
  24. aaE
  25. ab8
  26. aba
  27. abb
  28. abE
  29. aE8
  30. aEa
  31. aEb
  32. aEE
  33. b88
  34. b8a
  35. b8b
  36. b8E
  37. ba8
  38. baa
  39. bab
  40. baE
  41. bb8
  42. bba
  43. bbb
  44. bbE
  45. bE8
  46. bEa
  47. bEb
  48. bEE
  49. E88
  50. E8a
  51. E8b
  52. E8E
  53. Ea8
  54. Eaa
  55. Eab
  56. EaE
  57. Eb8
  58. Eba
  59. Ebb
  60. EbE
  61. EE8
  62. EEa
  63. EEb
  64. EEE
复制代码



谢谢!





论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2017-06-09 10:01 |显示全部楼层
本帖最后由 jason680 于 2017-06-09 12:32 编辑

回复 1# bmne


别捣鼓了....

组合问题,只能用效率最高的C / C ++
>> ...最近的有一个C++写的效率给提高了不少

同问题
http://bbs.chinaunix.net/thread-4262899-1-1.html



-----------------------------------------------------------------
若8abE组合,不易理解
换成1234可以容易看出...
888 => 111
88a => 112
....
EEb => 443
EEE => 444
--------------
= 4 * 4 * 4 = 4 ^ 3


这个问题的通解...
P(个)取N(个)
组合= P * P * P * .... * P(共N个P)= P ^ N

论坛徽章:
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
发表于 2017-06-09 15:21 |显示全部楼层
回复 2# jason680


大牛好

不捣鼓了我。只问你一句

我一楼是这样输出的
echo {8,a,b,E}{8,a,b,E}{8,a,b,E}|sed 's/ /\n/g'

我的问题(参考一楼):如把它改成文档形式(假如,只知道这3个文档,不知道每个文档的内容) 1.txt  2.txt  3.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
发表于 2017-06-09 15:56 |显示全部楼层

请路过的大牛,看到后,也麻烦回答下   楼上的问题。谢谢


论坛徽章:
10
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:4115-16赛季CBA联赛之深圳
日期:2020-05-31 16:13:5615-16赛季CBA联赛之同曦
日期:2020-01-28 12:42:47每日论坛发贴之星
日期:2016-08-09 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-04 06:20:0015-16赛季CBA联赛之佛山
日期:2021-02-26 09:33:41
发表于 2017-06-15 22:21 |显示全部楼层
cat *.txt|xargs |awk '{for(i=1;i<=NF;i++)a[i]=$i}END{for(i=1;i<=NF;i++){for(j=1;j<=NF;j++){for(k=1;k<=NF;k++)print a[i]""a[j]""a[k]}}}'

也不知道是不是这个意思

论坛徽章:
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
发表于 2017-06-17 12:30 |显示全部楼层
回复 5# ll104567



大牛,若有点时间,再请帮助下

你的命令有点问题,我不截图了,这个部分就执行的不正确  cat 1.txt 2.txt 3.txt|xargs

1.txt 2.txt 3.txt  就是我1楼的数据(其它我的要求也已说明)

另,为什么要这样,主要是想走捷径,方便、一目了然,不容易搞错。
因为,这里已经给出了。可以用这里的办法解决我的这个问题
http://bbs.chinaunix.net/thread-4262899-2-1.html
实话,还是希望你出手帮助下

谢谢。辛苦了






论坛徽章:
10
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:4115-16赛季CBA联赛之深圳
日期:2020-05-31 16:13:5615-16赛季CBA联赛之同曦
日期:2020-01-28 12:42:47每日论坛发贴之星
日期:2016-08-09 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-04 06:20:0015-16赛季CBA联赛之佛山
日期:2021-02-26 09:33:41
发表于 2017-06-19 21:41 |显示全部楼层
root@lp:~/lp# cat file
HU23
测试1
HU24
测试2
root@lp:~/lp# cat file1
1   A
2   B
3   C
4   D
5   E
root@lp:~/lp# cat file2
1   D
2   B
3   C
4   E
5   A
root@lp:~/lp# cat file file1 file2 |xargs
HU23 测试1 HU24 测试2 1 A 2 B 3 C 4 D 5 E 1 D 2 B 3 C 4 E 5 A


它的目的就是把数据都并成一行方便处理、、、没啥问题阿

论坛徽章:
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
发表于 2017-06-20 15:10 |显示全部楼层
回复 5# ll104567



终于弄明白了。谢谢大牛

要想成功运行这个命令,必须具备以下两个条件,否则,输出肯定是错误的

1、在已知的三个文件1.txt  2.txt  3.txt   每一个文件中的最后一行,必须保证是(一定要有一个)单独的回车符号
2、运行命令前,必须先运行dos2unix 1.txt 2.txt 3.txt



烦请问一下大牛,为什么必须要有上面的1的条件?能不能最后一行不是单独的回车符号也能正确运行?

谢谢!辛苦了




论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
发表于 2017-06-21 01:32 |显示全部楼层
no \n:

file b
0
1
2

if 2 no newline

cat b b
0
1
20
1
2.....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP