File 按文件中的列进行批排序
我想知道是否有可能按列对文本文件进行排序。比如说 我有File 按文件中的列进行批排序,file,sorting,batch-file,File,Sorting,Batch File,我想知道是否有可能按列对文本文件进行排序。比如说 我有aux1.txt这样的行 Name SecondName Grade 在shell中,我可以做到这一点 sort -r -k 3 aux1 它按第三列(等级)对文件进行排序 成批 sort /+3 < aux1.txt sort/+3
aux1.txt
这样的行
Name SecondName Grade
在shell中,我可以做到这一点
sort -r -k 3 aux1
它按第三列(等级)对文件进行排序
成批
sort /+3 < aux1.txt
sort/+3
将文件排序在第三个字母之后
我阅读了批处理的排序手册,但没有结果。您可以使用批处理文件编写自己的排序包装器
您只需将列重新排序到临时文件中,把它分类,然后把它订回来。(几乎显而易见)
虽然我很喜欢杰布的答案,但我一直在用克里斯·拉洛萨的答案 多年来
您可以对多个列进行排序,通过他的另一个工具(或任何其他CL工具)进行管道传输。有点老了……对您来说可能太晚了,但作为一般建议,您可以比创建临时文件简单得多。只需通过管道进行分类:
for /f "tokens=1-3" %%a in ('(for /f "tokens=1-3" %%x in (aux1.txt^) do @echo %%z %%x %%y^)^|sort') do echo %%b %%c %%a
请注意,这是一个命令,只需在命令提示符下键入即可使用,而无需任何批处理文件(当然,必须为此减少%%)
for /f "tokens=1-3" %%a in ('(for /f "tokens=1-3" %%x in (aux1.txt^) do @echo %%z %%x %%y^)^|sort') do echo %%b %%c %%a