标题: 不用sed怎么删除空行
[打印本页]
作者: wert123
时间: 2007-8-27 13:38
标题: 不用sed怎么删除空行
sed "/^$/d" file可删除txt文件中的空行,但是不能删除由空格组成的空行,如果某一行上只有几个空格,前面的命令是不能匹配该行的.
请问不用sed怎么删除空行?
最好连有空格的空行也删除的.
[
Last edited by wert123 on 2007-8-29 at 09:18 AM ]
作者: knoppix7
时间: 2007-8-27 14:14
@echo off
set runtimes=0
FOR /F "delims=" %%i in (myfile.txt) do (
call :func1 "%%i"
)
pause
pause
pause
:func1
set /a runtimes=%runtimes%+1
set EL=1
set T1=%1
set T1=%T1: =%
if NOT %T1%=="" set EL=0
if %EL%==0 (
if NOT %runtimes%==1 echo+>>done.txt
set /p null=%1<nul>>done.txt
)
goto :EOF
文本中有"的话就要少东西了。。。
作者: wudixin96
时间: 2007-8-27 14:33
用sed是可以删除的.正则要用好点
作者: halulove
时间: 2007-8-27 17:50
findstr . file1>file2
作者: ccwan
时间: 2007-8-27 18:38
woshenmodoumeishuocolor]
[ Last edited by ccwan on 2007-8-27 at 06:42 PM ]
作者: knoppix7 时间: 2007-8-27 18:42
恩。不过看都看晕了。应该很方便的。。
作者: wert123 时间: 2007-8-28 18:23
Quote: |
Originally posted by knoppix7 at 2007-8-27 02:14 PM:
@echo off
set runtimes=0
FOR /F "delims=" %%i in (myfile.txt) do (
call :func1 "%%i"
)
pause
pause
pause
:func1
set /a runtimes=%runtimes%+1
set EL=1
set T1=%1
set T ... |
|
谢谢,knoppix7真厉害啊
文本中有"的话就怎么会要少东西呢?能改进吗
顺便问下,echo+是什么意思啊.除此外其它地方
几乎也看不懂,麻烦帮忙讲解下吧.
[
Last edited by wert123 on 2007-8-28 at 06:36 PM ]
作者: wert123
时间: 2007-8-28 18:30
Quote: |
Originally posted by wudixin96 at 2007-8-27 02:33 PM:
用sed是可以删除的.正则要用好点 |
|
wudixin96老兄你也帮下忙吧,我在打东西,
打印室里面没有sed,我也想用,要下载,打印员
又怕sed是毒,打出来都有很多echo.一样的东西,乱费读书钱啊.
[
Last edited by wert123 on 2007-8-28 at 06:35 PM ]
作者: wert123
时间: 2007-8-28 18:31
p不行的话,谁帮忙写个vbs的也可以啊
作者: knoppix7
时间: 2007-8-28 19:12
你先把"替换成其他得东西(要求在文章中没有出现)
等转换完了再替换回去。
作者: wert123
时间: 2007-8-28 20:13
knoppix7大虾能把这个P讲下吗,func1我几乎都看不懂
作者: slore
时间: 2007-8-28 20:28
Quote: |
Dim objFSO,objFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Test.txt",1)
Dim StrLine,OutStr
Do Until objFile.AtEndOfStream
StrLine = objFile.ReadLine
If Replace(StrLine," ","") <> "" Then OutStr = OutStr & StrLine & vbCrLf
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile("Out.txt",2,1)
objFile.Write OutStr
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing |
|
PS:文本最后会产生个回车,我没有处理。。。自己取下
作者: knoppix7
时间: 2007-8-28 20:30
自我感觉没什么好讲得。很简单得BAT.......
作者: wudixin96
时间: 2007-8-29 10:05
sed "/^ *$/d"
作者: wert123
时间: 2007-8-30 17:16
Quote: |
Originally posted by knoppix7 at 2007-8-27 02:14 PM:
@echo off
set runtimes=0
FOR /F "delims=" %%i in (myfile.txt) do (
call :func1 "%%i"
)
pause
pause
pause
:func1
set /a runtimes=%runtimes%+1
set EL=1
set T1=%1
set T ... |
|
能不能改进下啊,大虾.我昨天用的时候把txt里面的,
非空行前面的空格都弄掉了啊
作者: knoppix7
时间: 2007-8-30 17:33
...........没有考虑这个事。。。完了。。。。。。。
@echo off
set runtimes=0
FOR /F "delims=" %%i in (myfile.txt) do (
call :func1 "%%i" "%%i"
)
pause
pause
pause
:func1
set /a runtimes=%runtimes%+1
set EL=1
set T1=%1
set T1=%T1: =%
if NOT %T1%=="" set EL=0
if %EL%==0 (
if NOT %runtimes%==1 echo+>>done.txt
set /p "null=%2"<nul>>done.txt
)
goto :EOF
作者: kennyfan
时间: 2007-8-30 18:45
呵呵..的确有意思..有创意..学习了!~
作者: wert123
时间: 2007-8-30 18:59
Quote: |
Originally posted by knoppix7 at 2007-8-30 05:33 PM:
...........没有考虑这个事。。。完了。。。。。。。
@echo off
set runtimes=0
FOR /F "delims=" %%i in (myfile.txt) do (
call :func1 "%%i" "%%i"
... |
|
非空行前面的空格还掉了啊
作者: ngd
时间: 2007-12-21 12:48
用这个可以,注意*前有个空格 sed "/^ *$/d"
# 删除文件中的所有空行
sed '/^$/d' # 方法1
sed '/./!d' # 方法2