Board logo

标题: [文本处理] 取文本中的字符串并显示 [打印本页]

作者: newdosuser    时间: 2008-10-25 18:04     标题: 取文本中的字符串并显示

现有文本文件a.txt
<td width=90>雾</td>
<td width=90>东南 3-4</td>
<td width=90>22 ℃</td>
<td width=90>多云</td>
<td width=90>南 4-5</td>
<td width=88>15 ℃</td>

我要把其中的天气状况取出,并显示,如:

东南 3-4
22 ℃多云
南 4-5
15 ℃

谢谢大家了!
作者: terse    时间: 2008-10-25 18:26

  1. @echo off
  2. for /f "usebackq tokens=2 delims=<>" %%i in ("a.txt") do echo %%i
  3. pause
复制代码

作者: pusofalse    时间: 2008-10-25 18:34

  1. @sed "s/<[^>]*>//g" a.txt
复制代码

作者: batman    时间: 2008-10-25 19:26

请楼主参阅此贴八楼:
http://www.bathome.net/thread-2249-1-1.html
另请在提问先搜索。。。
作者: jellyhk    时间: 2008-10-25 22:01

原帖由 terse 于 2008-10-25 18:26 发表
@echo off
for /f "usebackq tokens=2 delims=" %%i in ("a.txt") do echo %%i
pause

能问问为什么!/f  里什么时候有usebackq了 为什么以前没看见?
而且他是什么意思?
作者: batman    时间: 2008-10-25 22:25

在for /f中句式中一般不会使用"usebackq",但一旦出现了"usebackq",则以下的用法将被系统认为合法:
1、一个后引号的字符串并被当作命令执行如for /f "usbackq" %i in (`set`) do ...
2、一个单引号字符做为文字字符串命令(很少见到这种用法)
3、允许在for /f "..." %i in ("文件名")中将文件名用双引号括起以兼容文件名中的空格和其它特殊字符,如文件为ab cd ef.txt
作者: newdosuser    时间: 2008-10-25 22:57

太好了,谢谢各位啦!看来还得多学习哩.




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2