Hello StackExchange社区!批量排序浮点数
我想解决批处理浮点值的问题。
重点。我有以下形式的日志文件(INPUT.TXT):
889.W_1.153,46
889.W_1.37,43
889.W_1.28,81
889.W_1.34,70
155.W_2.22,67
155.W_2.108,06
155.W_2.22,11
155 W_2 22,65
我想在第一和第三列进行排序这一点。我想输出(OUTPUT.TXT)以这种形式:
155.W_2.22,11
155.W_2.22,65
155.W_2.22,67
155.W_2.108,06
889.W_1.28,81
889.W_1.34,70
889.W_1.37,43
889.W_1.153,46
我写了一个小剧本,因为我的结果是它的工作原理差不多好了:
155 108,06 W_2
155 22,11 W_2
155 22,65 W_2
155 22,67 W_2
889 153,46 W_1
889 28,81 W_1
889 34,70 W_1
889 37,43 W_1
点和列的顺序并不那么重要,实际问题是数字超过2位数。逗号被视为比数字“更高”。以下是脚本:
@echo off
setlocal enabledelayedexpansion
for /F "tokens=1-3 delims=." %%a in (INPUT.txt) do set "a[%%a %%c ]=%%b"
for /F "tokens=2-4 delims=[.]=" %%a in ('set a[') do echo %%a%%c%%b>> OUTPUT.txt
正确排序并不是我需要的一切。我也有能力(稍后在脚本中)删除一个数字超过2位的整行,在这种情况下,它将与行153,49
和108,06
。任何帮助对我来说都是非常有价值的。
在你的'INPUT.txt'数据样本的最后一行,没有点'。'('155 W_2 22,65');我认为这是一个错字,对吧? – aschipfl