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:


试试这段


@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
作者: 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