[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理如何将txt文本每一行的每段数字/字符串按出现的次数多少排序

本帖最后由 pcl_test 于 2016-7-12 16:52 编辑

txt文本有00-99的数据,其格式如下:
53 74 29...
68 65 90...
70 86 84...
08 19 98...
96 81 08...
... ...  ... ...
欲逐行按出现次数从多到少排序,出现次数相同的,则从小到大排列,未出现的数据也是从小到大排列。排序结果写入另一个txt文本。
这样的批处理如何写?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @set @n=0;//&cscript -nologo -e:jscript "%~0"<a.txt>b.txt & pause & exit
  2. while (!WScript.StdIn.AtEndOfStream) {
  3.         str = WScript.StdIn.ReadLine();
  4.         if (!/^\s*$/.test(str)) WScript.Echo(getNum(str))
  5. }
  6. function getNum(s) {
  7.         ar = [];
  8.         for (i=100; i<=199; i++) {
  9.                 s1 = (i + "").substr(1);
  10.                 ar.push(s.split(s1).length + "=" + s1);
  11.         }
  12.         ar.sort(function(x,y){return y.split("=")[0]-x.split("=")[0]});
  13.         return ar.join(" ").replace(/\d+=/g, "");
  14. }
复制代码
1

评分人数

TOP

回复 4# apang

谢谢提醒。那是在excel中进行排序的,没有想到excel数据为文本格式,排序出现了不准确的现象。

TOP

附件排序后的数据:以一行为例.txt 与顶楼描述的“出现次数相同的,则从小到大排列”不相符

TOP

回复 2# DAIC

感谢关注。由于数据庞大,故取一行数据为例。
比如:
待排序数据:00 01 02 00 00 02 80
排序后的数据:00 02 01 80 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

TOP

请给出顶楼数据处理之后希望得到的结果

TOP

返回列表