标题: [文本处理] [已解决]批处理如何将文本内容按根据每一行最后一个指定字符后面的内容排序? [打印本页]
作者: zcdyj 时间: 2011-5-15 22:12 标题: [已解决]批处理如何将文本内容按根据每一行最后一个指定字符后面的内容排序?
本帖最后由 pcl_test 于 2016-12-2 14:43 编辑
有一串这样的网址
http://www.a.com/id=126&0101=broadband
http://www.a.com/id=166&0101=narrowband
http://www.a.com/id=1760101=flash
http://www.a.com/id=1860101=mp3
http://www.a.com/id=2560601=broadband
http://www.a.com/id=1660601=narrowband
http://www.a.com/id=1760601=flash
http://www.a.com/id=1650601=mp3
只要求以最后一个等号之后的相同的类型内容进行排序
sort /+22 1.txt 运行不成功 这样用批处理该如何写?
作者: hfg1977 时间: 2011-5-15 23:06
"相同的类型内容" 这说的是什么话呀??
复制代码
作者: zcdyj 时间: 2011-5-16 15:48
2# hfg1977
就是按照这样的格式排序
http://www.a.com/id=126&0101=broadband
http://www.a.com/id=2560601=broadband
http://www.a.com/id=166&0101=narrowband
http://www.a.com/id=1660601=narrowband
http://www.a.com/id=1860101=mp3
http://www.a.com/id=1650601=mp3
http://www.a.com/id=5660101=audio
http://www.a.com/id=1760101=flash
http://www.a.com/id=1760601=flash
作者: CrLf 时间: 2011-5-16 17:01
来一个另类思路- @echo off
- (for /f "tokens=1-5 delims==" %%a in (a.txt) do echo %%e=%%d=%%c=%%b=%%a)>s.txt
- (for /f "tokens=1-5 delims==" %%a in ('sort s.txt') do (
- for /f "tokens=* delims==" %%f in ("%%e=%%d=%%c=%%b=%%a") do echo %%f
- ))>a.txt
- pause
复制代码
作者: zcdyj 时间: 2011-5-16 23:08
4# zm900612
是不是哪里错了? 排序成这样了
==broadband=126&0101=http://www.a.com/id
==broadband=2560601=http://www.a.com/id
==narrowband=166&0101=http://www.a.com/id
==narrowband=1660601=http://www.a.com/id
==mp3=1860101=http://www.a.com/id
==mp3=1650601=http://www.a.com/id
==audio=5660101=http://www.a.com/id
==flash=1760101=http://www.a.com/id
==flash=1760601=http://www.a.com/id
作者: CrLf 时间: 2011-5-16 23:11
这是临时文件的内容,处理结果存在a.txt中
作者: CrLf 时间: 2011-5-16 23:12
如果没有特殊说明,大部分代码最后出现的一个输出到文件的动作就是在输出结果
作者: Batcher 时间: 2011-5-17 02:43
1# zcdyj - C:\UnxUtils\sort.exe -t= -k3,3 1.txt | more >2.txt
复制代码
http://bbs.bathome.net/thread-1114-1-1.html
作者: zcdyj 时间: 2011-5-17 12:37
感谢大家 完美解决了 管理员推荐的这个UnxUtils工具包很好用
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |