|
wingofsea
初级用户
 
积分 124
发帖 34
注册 2006-5-23
状态 离线
|
『楼 主』:
如何显示文件的最后一行?
使用 LLM 解释/回答一下
如何写batch文件或者使用dos命令显示 文件的最后一行?
如:
showLastLine.bat samle.txt
"this is the last line of sample file."
|
|
2006-5-24 15:22 |
|
|
vvillsort
新手上路
 一个忠实的FANS
积分 14
发帖 7
注册 2006-5-24
状态 离线
|
『第 2 楼』:
使用 LLM 解释/回答一下
@echo off
set a=0
for /f %%a in (你要搜索的文件.txt) do set a=%%a
echo %a%
|
|
2006-5-24 16:43 |
|
|
3742668
荣誉版主
      
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
|
2006-5-24 19:04 |
|
|
Scott0902
中级用户
  
积分 466
发帖 237
注册 2005-10-12
状态 离线
|
|
2006-5-24 22:52 |
|
|
willsort
元老会员
         Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
Re vvillsort:
你的代码思路我认同,只是增补一些细节。但即使如此,它仍然无法处理一些特殊的情况,比如当最后一行为空行时,比如此行含有某些“>|<”之类的特殊字符时。
如果楼主没有严格的需要,你的代码应该足够了。但是,我们可以将如何禁止for忽略空行以及如何实现原文echo作为研究题目,提高我们的水平,增加代码的质量。
@echo off & setlocal
set a=
for /f "delims=" %%a in (sample.txt) do set a=%%a
echo.%a%
|

※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2006-5-24 23:44 |
|
|
vvillsort
新手上路
 一个忠实的FANS
积分 14
发帖 7
注册 2006-5-24
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
YES,三楼和四楼回答正确,我就是willsort传说中的粉丝 .......................哈哈哈
|
|
2006-5-25 08:41 |
|
|
Climbing
铂金会员
       网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
楼主没有限定不使用第三方工具,所以如果用sed来实现会更简单。
sed -ne "$p" sample.txt
"$p"表示打印最后一行,-n表示不显示其它内容,-e表示执行后面的脚本。
|

偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2006-5-25 10:00 |
|
|
jawbin
高级用户
   
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
|
2006-5-25 11:35 |
|
|
wingofsea
初级用户
 
积分 124
发帖 34
注册 2006-5-23
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
谢谢大家,学到了很多东西,多谢:)最近要写一些脚本,发现自己对这块还特别不了解,学习中。。。再次感谢
|
|
2006-5-25 14:20 |
|
|
Climbing
铂金会员
       网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第 10 楼』:
使用 LLM 解释/回答一下
Originally posted by jawbin at 2006-5-25 11:35:
晕倒....
你晕倒什么?
|

偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2006-5-25 16:33 |
|
|
willsort
元老会员
         Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第 11 楼』:
使用 LLM 解释/回答一下
Re Climbing:
wingofsea 在顶楼已提出“写batch文件或者使用dos命令”,除非兄认为第三方工具也属于DOS命令。当然,你的回复很有用,不仅楼主受益,我也进一步巩固了sed的脚本基础。对兄表示感谢!
|

※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2006-5-25 16:43 |
|
|
Climbing
铂金会员
       网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第 12 楼』:
使用 LLM 解释/回答一下
Re wil兄:
哈哈,我一向认为凡是能在dos下运行的命令就是dos命令,非局限于只有微软提供的DOS命令。我的原则就是:甭管黑猫白猫,能抓老鼠就是好猫。技术穷根究底固然重要,非唯此而不精,但在工作上则是以解决问题为第一要务。
以兄的水平,sed的这点儿小猫腻对你实在是太简单了,我是班门弄斧,见笑见笑。你说话现在水平越来越高了,到底有多高,怎么也得有十层楼那么高~~~~
|

偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2006-5-25 19:03 |
|
|
3742668
荣誉版主
      
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第 13 楼』:
使用 LLM 解释/回答一下
如果只是纯粹地显示最后一行的话,这样几条命令无疑是效率高,容错好的:
@echo off
type %1
for /l %%i in (1,1,24) do echo.
pause>nul
其中的24表示屏幕的高度-1。
个人认为在处理文本内容方面,用VBS要比BAT合适得多。
|
|
2006-5-25 19:12 |
|
|
fan927
初级用户
 
积分 82
发帖 31
注册 2006-5-23
状态 离线
|
『第 14 楼』:
使用 LLM 解释/回答一下
Originally posted by Climbing at 2006-5-25 10:00:
楼主没有限定不使用第三方工具,所以如果用sed来实现会更简单。
sed -ne "$p" sample.txt
"$p"表示打印最后一行,-n表示不显示其它内宠...
Climbing大侠,
这条命令如果遇到以空格的结尾是无效的,需要这么写:
sed "/^$/d" sample.txt|sed -ne "$p"
其中,要先用 " /^$/d" 过虑一下空行,让后再执行你这条命令.
班门弄斧了.
|
|
2006-5-25 19:34 |
|
|
Climbing
铂金会员
       网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第 15 楼』:
使用 LLM 解释/回答一下
Re fan927:
多谢指正,只不过楼主要求显示最后一行,并没有说要过滤空行,当然,空行也算是最后一行,我是这么理解的,嘿嘿~~~
而且,似乎用你的方法也只能过滤空行,如果一行中有若干空格也是无法过滤的,所以,似乎这样更为妥当:
sed "/^ *$/d" sample.txt | sed -ne "$p"
|

偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2006-5-25 22:13 |
|