中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 如何显示文件的最后一行? 上一主题 | 下一主题
wingofsea
初级用户





积分 124
发帖 34
注册 2006-5-23
状态 离线
『楼 主』:  如何显示文件的最后一行?

如何写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 楼』:  

@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
状态 离线
『第 3 楼』:  

灌个水,楼上的你是willsort兄的fans?

2006-5-24 19:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Scott0902
中级用户





积分 466
发帖 237
注册 2005-10-12
状态 离线
『第 4 楼』:  

vvillsort 莫非是 willsort 的马甲?

2006-5-24 22:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 5 楼』:  

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 楼』:  

YES,三楼和四楼回答正确,我就是willsort传说中的粉丝 .......................哈哈哈

2006-5-25 08:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 7 楼』:  

楼主没有限定不使用第三方工具,所以如果用sed来实现会更简单。

sed -ne "$p" sample.txt

"$p"表示打印最后一行,-n表示不显示其它内容,-e表示执行后面的脚本。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2006-5-25 10:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 8 楼』:  

晕倒....

2006-5-25 11:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wingofsea
初级用户





积分 124
发帖 34
注册 2006-5-23
状态 离线
『第 9 楼』:  

谢谢大家,学到了很多东西,多谢:)最近要写一些脚本,发现自己对这块还特别不了解,学习中。。。再次感谢

2006-5-25 14:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by jawbin at 2006-5-25 11:35:
晕倒....

你晕倒什么?



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2006-5-25 16:33
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 11 楼』:  

Re Climbing:

      wingofsea 在顶楼已提出“写batch文件或者使用dos命令”,除非兄认为第三方工具也属于DOS命令。当然,你的回复很有用,不仅楼主受益,我也进一步巩固了sed的脚本基础。对兄表示感谢!



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-5-25 16:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 12 楼』:  

Re wil兄:

哈哈,我一向认为凡是能在dos下运行的命令就是dos命令,非局限于只有微软提供的DOS命令。我的原则就是:甭管黑猫白猫,能抓老鼠就是好猫。技术穷根究底固然重要,非唯此而不精,但在工作上则是以解决问题为第一要务。

以兄的水平,sed的这点儿小猫腻对你实在是太简单了,我是班门弄斧,见笑见笑。你说话现在水平越来越高了,到底有多高,怎么也得有十层楼那么高~~~~



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2006-5-25 19:03
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 13 楼』:  

如果只是纯粹地显示最后一行的话,这样几条命令无疑是效率高,容错好的:
@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 楼』:  



  Quote:
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 楼』:  

Re fan927:

多谢指正,只不过楼主要求显示最后一行,并没有说要过滤空行,当然,空行也算是最后一行,我是这么理解的,嘿嘿~~~

而且,似乎用你的方法也只能过滤空行,如果一行中有若干空格也是无法过滤的,所以,似乎这样更为妥当:
sed "/^ *$/d" sample.txt | sed -ne "$p"



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2006-5-25 22:13
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: