标题: [文本处理] [已解决]批处理怎样提取文本中的字符串并使之按一定要求排列? [打印本页]
作者: ljfriend 时间: 2011-8-20 21:12 标题: [已解决]批处理怎样提取文本中的字符串并使之按一定要求排列?
本帖最后由 ljfriend 于 2011-8-21 13:24 编辑
例如txt中有(每个字符串间都是TAB间隔,而且每个字符串不等长):
列1 列2 列3 列4 列5 列6
行1 ab bd ca dd 1t c8
行2 9a 9d 34 d8 0x d2
行3 t3 d7 f2 h7 c8 dd2
......
比如我要查找c8,希望能回显其所在的一整行。
就上文而言,c8有两行。我知道普通的回显只要用type就行,但是我想达到以下效果:
回显时显示
列1:ab
列2:bd
列3:ca
列4:dd
列5:1t
列6:c8
列1:t3
列2:d7
列3:f2
列4:h7
列5:c8
列6:dd2
即有c8的行按照上面的方式排列回显。
以下是我的代码:- @echo off
- cls
- set tab=
- set /p findstr=输入内容:
- for /f "tokens=1 delims=%tab%" %%i in ('findstr "%findstr%" temp.txt') do echo 列1:%%i
- for /f "tokens=2 delims=%tab%" %%i in ('findstr "%findstr%" temp.txt') do echo 列2:%%i
- for /f "tokens=3 delims=%tab%" %%i in ('findstr "%findstr%" temp.txt') do echo 列3:%%i
- for /f "tokens=4 delims=%tab%" %%i in ('findstr "%findstr%" temp.txt') do echo 列4:%%i
- for /f "tokens=5 delims=%tab%" %%i in ('findstr "%findstr%" temp.txt') do echo 列5:%%i
- for /f "tokens=6 delims=%tab%" %%i in ('findstr "%findstr%" temp.txt') do echo 列6:%%i
- pause>nul
复制代码
但是显示出来的是
列1:ab
列1:t3
列2:bd
列2:d7
列3:ca
列3:f2
......
不是我想要的,希望高手帮帮我,本人是初学者。
作者: cjiabing 时间: 2011-8-21 00:13
找c8一行的:
findstr /i "c8" a.txt
横排变竖排的:
for %%a in (a.txt) do echo %%a
作者: ljfriend 时间: 2011-8-21 09:08
本帖最后由 ljfriend 于 2011-8-21 13:23 编辑
哎,没人回答自己解决了。。。。。- for /f "delims=%tab% tokens=1,2,3,4,5,6" %%i in ('type temp.txt^| find /i "%findstr%"') do (
- echo 列1:%%i &echo 列2:%%j &echo 列3:%%k &echo 列4:%%l &echo 列5:%%m &echo 列6:%%n &echo. &pause>nul
- set /a count+=1)
- echo 共有%count%行符合要求。
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |