标题: [文本处理] 批处理如何删除多个txt文本文件里面的最后一行内容? [打印本页]
作者: gannh 时间: 2014-1-21 11:55 标题: 批处理如何删除多个txt文本文件里面的最后一行内容?
本帖最后由 pcl_test 于 2016-7-23 21:58 编辑
现有N个文件夹,文件夹里面有N个文本文件,现需要把文本文件的最后一行内容去掉,请问批处理命令可以实现吗?
另,如果需要高效率处理,请问是否用sed命令会比其它命令高效么,谢谢
作者: terse 时间: 2014-1-21 13:03
本帖最后由 terse 于 2014-1-21 13:21 编辑
可以试试 findstr sed gawk ==命令
有个问题 最后行回车了怎么办
作者: gannh 时间: 2014-1-21 16:19
回复 2# terse
请问这些命令怎么用?还请terse哥指教,谢谢啊!
作者: terse 时间: 2014-1-21 17:16
本帖最后由 terse 于 2014-1-21 17:19 编辑
要看尾行有无回车复制代码
下面两个是外部 需下载
sed 加 -i 直接写文件复制代码
- GAWK "{print FILENAME\":\" t ;t=$0}" *.TXT
复制代码
作者: gannh 时间: 2014-1-21 21:19
回复 4# terse
再次谢过terse的耐心解决,谢谢
作者: gannh 时间: 2014-1-22 14:15
再请教,请问如何显示批处理命令所执行时间?谢谢!
作者: DAIC 时间: 2014-1-22 16:24
回复 6# gannh
http://www.bathome.net/thread-4701-1-1.html
作者: gannh 时间: 2014-1-22 19:31
回复 7# DAIC
看了一下,还是不太懂,请DAIC指教,谢谢
作者: DAIC 时间: 2014-1-23 08:36
回复 8# gannh
哪里不懂?
作者: gannh 时间: 2014-1-23 11:48
回复 9# DAIC
这个是脚本代码[保存为etime.bat放在当前路径下即可]:
:etime <begin_time> <end_time> <return>
rem 所测试任务的执行时间不超过1天 // 骨瘦如柴版
setlocal&set be=%~1:%~2&set cc=(%%d-%%a)*360000+(1%%e-1%%b)*6000+1%%f-1%%c&set dy=-8640000
for /f "delims=: tokens=1-6" %%a in ("%be:.=%")do endlocal&set/a %3=%cc%,%3+=%dy%*("%3>>31")&exit/b
我将代码复制,并保存为etime.bat,并运行,得出的结果是
D:\>rem 所测试任务的执行时间不超过1天 // 骨瘦如柴版
D:\>setlocal & set be=: & set cc=(%d-%a)*360000+(1%e-1%b)*6000+1%f-1%c & set dy=-8640000
D:\>for /F "delims=: tokens=1-6" %a in (":") do endlocal & set/a =(%d-%a)*360000+(1%e-1%b)*6000+1%f-1%c,+=-8640000*(">>31") & exit/b
这是什么问题呢,属于低级错误,还是我不理解?还请指教,谢谢!
作者: terse 时间: 2014-1-24 00:14
回复 10# gannh - @echo off
- set t1=%time%
- ::程序运行
- for /L %%i in (1,1,10000) do ver>nul
- set t2=%time%
- call :etime %t1% %t2% t
- echo %t%
- pause&exit
-
- :etime
- rem 所测试任务的执行时间不超过1天 // 骨瘦如柴版
- setlocal&set be=%~1:%~2&set cc=(%%d-%%a)*360000+(1%%e-1%%b)*6000+1%%f-1%%c&set dy=-8640000
- for /f "delims=: tokens=1-6" %%a in ("%be:.=%")do endlocal&set/a %3=%cc%,%3+=%dy%*("%3>>31")&exit/b
-
复制代码
作者: gannh 时间: 2014-1-24 11:41
回复 11# terse
再次感谢terse的耐心指点! 另有个疑问,在DOS下,什么命令可以快速移动多个文本文件(大概有十多万个),谢谢!
作者: CrLf 时间: 2014-1-25 18:09
本帖最后由 CrLf 于 2014-1-25 18:10 编辑
另类解:- @sort /+9999 a.txt|more +1|sort /+9999
复制代码
效率不高,胜在简单,追求效率还是建议用sed
作者: CrLf 时间: 2014-1-25 20:06
回复 12# gannh - move /y "原目录\*.txt" "新目录"
复制代码
作者: gannh 时间: 2014-1-28 12:36
谢谢crlf指教
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |