Board logo

标题: [文本处理] 批处理如何将文本里的内容按每一行中以指定字符分割的最后一个字段/列排序? [打印本页]

作者: lyfwcn    时间: 2016-1-7 10:01     标题: 批处理如何将文本里的内容按每一行中以指定字符分割的最后一个字段/列排序?

本帖最后由 pcl_test 于 2016-11-10 14:12 编辑

就是以每行的最后一个/开始排序.

例如:
张三http://www.bathome.net/post.gefc ... crswd=5/hgeodhiroge
李四钱http://www.bathome.net/post.phpp ... mp;fid=5/bdieodhiro
王五节http://www.bathome.net/post.php/ ... h=5/afowidogrhdfeeh

这三个按
/hgeodhiroge
/bdieodhiro
/afowidogrhdfeeh

/afowidogrhdfeeh
/bdieodhiro
/hgeodhiroge
结果为
王五节http://www.bathome.net/post.php/ ... h=5/afowidogrhdfeeh
李四钱http://www.bathome.net/post.php?action=ned&fid=5/bdieodhiro
张三http://www.bathome.net/post.gefc ... crswd=5/hgeodhiroge

谢谢
作者: flyinnet9    时间: 2016-1-7 10:39

路过。。。
作者: 回家路上    时间: 2016-1-7 10:53

  1. @echo off & setlocal enabledelayedexpansion
  2. %1(for /f "tokens=1*delims=$" %%i in ('"%~f0" :^|sort') do echo;%%j)& pause & exit /b
  3. for /f "delims=" %%a in (1.txt) do (
  4. set line=%%a
  5. set line=!line:/=.!
  6. for /f "delims=" %%i in ("!line!") do echo;%%~xi$%%a
  7. )
复制代码

作者: lyfwcn    时间: 2016-1-7 11:33

回家路上 发表于 2016-1-7 10:53


只能看不能用啊.我一复制粘贴窗口就关了.
作者: pcl_test    时间: 2016-1-7 11:51

回复 3# 回家路上

可再适当精简下
  1. @echo off
  2. %1(for /f "tokens=1*delims=|" %%i in ('"%~f0" :^|sort') do echo;%%j)& pause & exit /b
  3. for /f "delims=" %%a in (1.txt) do echo;%%~na^|%%~a
复制代码

作者: lyfwcn    时间: 2016-1-7 12:11

  1.     @echo off
  2.     %1(for /f "tokens=1*delims=|" %%i in ('"%~f0" :^|sort') do echo;%%j) >>bb.txt& pause & exit /b
  3.     for /f "delims=" %%a in (1.txt) do echo;%%~na^|%%~a
  4.    
复制代码
把1.txt写入bb.txt
作者: pcl_test    时间: 2016-11-10 14:15

  1. powershell -c "gc '文本.txt'|sort {$_.split('/')[-1]}"
  2. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2