Board logo

标题: 文本过滤 [打印本页]

作者: xycoordinate     时间: 2008-5-21 19:51    标题: 文本过滤

我有个文本text.txt:

  Quote:
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   1┃ 10206┃1020601011003124488   ┃      890.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   2┃ 10206┃1020601011003116860   ┃      860.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃小计┃     2┃                      ┃    1,750.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   1┃ 15600┃1560001011002018992   ┃   35,000.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   2┃ 15600┃1560001011001880180   ┃    5,000.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   3┃ 15600┃1560001011000413473   ┃   10,000.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   4┃ 15600┃1560001011001607063   ┃   30,000.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   5┃ 15600┃00600000000000211333  ┃       46.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   6┃ 15600┃1560001011002018992   ┃   45,000.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   7┃ 15600┃1560001011001450918   ┃    1,000.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃   8┃ 15600┃00600000000000249809  ┃    1,900.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋
┃小计┃     8┃                      ┃  127,946.00┃
┣━━╋━━━╋━━━━━━━━━━━╋━━━━━━╋

现在想过滤成只有15600的"小计",即
┃小计┃     8┃                      ┃  127,946.00┃

[ Last edited by xycoordinate on 2008-5-21 at 07:53 PM ]
作者: plp626     时间: 2008-5-21 20:38
findstr 小计 text.txt
for /f "skip=1 delims=" %%a in ('findstr 小计 text.txt')do echo\%%a
作者: joyn     时间: 2008-5-21 20:46
用来干嘛的?
作者: xycoordinate     时间: 2008-5-23 13:52    标题: 问题已经解决!!!

http://www.cn-dos.net/forum/view ... id=c8gCC7#pid280727
作者: terse     时间: 2008-5-23 17:07
@echo off&setlocal enabledelayedexpansion
for /f "delims=┃ tokens=1,2,3,4" %%i in (text.txt) do (
      set str1=%%i&set str2=%%j
      set str4=!str1: =!&set str2=!str2: =!
      if !str2! equ 15600 set n=15600
      if defined n if "!str1!"=="小计" echo ┃%%i┃ %%j┃ %%k┃ %%l┃&set n=
)
pause