Board logo

标题: [讨论]判定文件中某行是否空行(非windows文件) [打印本页]

作者: gahoo     时间: 2008-5-16 01:48    标题: [讨论]判定文件中某行是否空行(非windows文件)
能否用批处理实现判定文件中某一行是否是空行?感觉很困难啊。大家一起讨论一下。 请看4楼 [ Last edited by gahoo on 2008-5-16 at 12:52 PM ]

作者: gahoo     时间: 2008-5-16 01:48
比如文件test.txt中 test.txt---------------- asdfsdf fewfwekr; werweori weoriwejr rweirjower woeirjowe wopeirjowerjo --------------------------- 怎么判断第3、5、9、10、12、13行是空行 [ Last edited by gahoo on 2008-5-16 at 01:50 AM ]

作者: lxmxn     时间: 2008-5-16 01:55
findstr /n "^$" text.txt

作者: gahoo     时间: 2008-5-16 12:43
我明白为什么我没弄出来了,那个文件是其他操作系统下的,回车符号与windows不同,在记事本里面看着就是黑框框,findstr /n "^$" test.txt无法处理这种情况。 大家再研究一下看 请大家下载这个文件再看看 test.txt文件

作者: HAT     时间: 2008-5-16 13:41
如果是Unix系统中的文件,可以先在Unix运行: unix2dos test.txt 然后在放到windows里面就行了

作者: bg5hfc     时间: 2008-5-16 15:04
Originally posted by gahoo at 2008-5-16 12:43 PM: 我明白为什么我没弄出来了,那个文件是其他操作系统下的,回车符号与windows不同,在记事本里面看着就是黑框框,findstr /n "^$" test.txt无法处 ...
试试这段
@ECHO OFF
FOR /f "tokens=1* delims=:" %%i IN ('findstr /n .* 413.txt') DO (
  ECHO.%%j | Findstr /i "^.$" > NUL
  IF NOT ERRORLEVEL 1 ( ECHO line %%i is empty! ))

作者: gahoo     时间: 2008-5-16 17:41
Originally posted by HAT at 2008-5-16 01:41 PM: 如果是Unix系统中的文件,可以先在Unix运行: unix2dos test.txt 然后在放到windows里面就行了
目的就是只使用批处理解决这个问题

作者: gahoo     时间: 2008-5-16 17:43
Originally posted by bg5hfc at 2008-5-16 03:04 PM: 试试这段 [code] @ECHO OFF FOR /f "tokens=1* delims=:" %%i IN ('findstr /n .* 413.txt') DO ( ECHO.%%j | Findstr /i "^.$" > NUL IF NOT ERRORLEVEL 1 ( ECHO li ...
测试可行,不错

作者: gahoo     时间: 2008-5-16 17:48
我发现非常简单……只要
findstr /n /v "." 413.txt

作者: plp626     时间: 2008-5-17 18:29
这个以前讨论过: www.cn-dos.net/forum/viewthrea ...

作者: gahoo     时间: 2008-5-18 00:03
咦?怎么搜索没注意看到?

作者: gahoo     时间: 2008-5-18 00:12
突然发现 find /v /c "" 413.txt 结果为什么是11而不是12 findstr .* 413.txt | find /v /c "" 结果就是12