标题: [文本处理] 【已解决】第三方工具:提取出现最多次数的字符 [打印本页]
作者: 思想之翼 时间: 2023-4-14 11:51 标题: 【已解决】第三方工具:提取出现最多次数的字符
本帖最后由 思想之翼 于 2023-4-19 22:47 编辑
D:\JZ\A.txt 有1列10行左右的字符,格式如下:
G
B
J
J
E
E
如何使用第三方工具,提取出现最多次数的字符?
本例结果是 J E,竖排写入D:\JZ\B.txt,格式如下:
J
E
作者: Batcher 时间: 2023-4-14 13:49
回复 1# 思想之翼
每行只有1个字母吗?
作者: 思想之翼 时间: 2023-4-14 13:54
回复 2# Batcher
您好,是的,每行只有1个字母
作者: hfxiang 时间: 2023-4-19 19:14
请把"D:\JZ\A.tx"保存为ANSI编码- gawk "{++a[$0];a[$0]>n+0?n=a[$0]:n=n+0}END{for(i in a)if(a[i]==n)print i}" "D:\JZ\A.tx" "D:\JZ\B.txt"
复制代码
作者: terse 时间: 2023-4-19 23:47
可以省了那个+- gawk "{n=n<++a[$0]?a[$0]:n}END{for(k in a)if(n==a[k])print k}"<"D:\JZ\A.tx">"D:\JZ\B.txt"
复制代码
作者: newswan 时间: 2023-4-20 00:09
- $f = Get-Content -Encoding UTF8 "a.txt"
-
- $a = @{}
- $f | ForEach-Object {
- $a[$_]++
- if ( $a[$_] -gt $max ) { $max = $a[$_] }
- }
-
- $a.GetEnumerator() | ForEach-Object {
- if ( $_.Value -eq $max ) { $_.Name }
- }
复制代码
sed awk grep 真神器
作者: WHY 时间: 2023-4-21 21:21
本帖最后由 WHY 于 2023-4-24 00:03 编辑
- gawk "{if(max<=++a[$0]){max=a[$0];b[max]=b[max]$0\"\n\"}}END{printf b[max]}" a.txt > b.txt
复制代码
作者: WHY 时间: 2023-4-21 21:26
- @if(0)==(0) echo off
- type a.txt | cscript //nologo //E:jscript "%~f0" > b.txt
- pause & exit
- @end
-
- var max = 0;
- var obj = {}
-
- while(!WSH.StdIn.AtEndOfStream){
- var s = WSH.StdIn.ReadLine();
- obj[s] = obj.hasOwnProperty(s) ? obj[s] + 1 : 1;
- if (max < obj[s]){
- max = obj[s];
- var out = [s];
- } else if (max == obj[s]){
- out.push(s);
- }
- }
-
- WSH.Echo(out.join('\r\n'));
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |