Board logo

标题: 从文本中提取内容,删除空行... [打印本页]

作者: Mekinery     时间: 2007-1-6 05:34    标题: 从文本中提取内容,删除空行...

1.有个en.txt文件,内容如下:
I like the subtle fresh green budding from the branches of the tree -- the herald of spring, ushering in the dawn

I like the subtle flow of cloud that makes the sky seem even more vast, azure and immense...
I like the subtle wind. In spring, it steals a kiss on my cheek; in autumn, it caresses my face; in summer, it brings in cool sweet smell; in winter, it carries a crisp chilliness. The subtle bitter is what it is meant to be.


I like the subtle brings in do anyting...
1).怎么把这个文本中的所有空行去掉并保存为en1.txt.
2).怎么把"that makes the sky "输出并保存为en2.txt(从en.txt中提取)

2.我在d盘下建立了个文件夹为:a. (D:\a..\ 畸形文件夹),怎么把d盘里面的1.txt复制到文件夹a.中?又怎么将1.txt复制到e盘下(从a.中)?

3.在d盘文件夹为:a. (D:\a..\ 畸形文件夹)中有个f.bat,为什么不能在里面运行?,怎么才能使其运行?

新手遇到这些难题希望有人解答,只要能解决,不管几个十分感谢!

[ Last edited by Mekinery on 2007-1-6 at 10:43 PM ]
作者: namejm     时间: 2007-1-6 06:44
  1、1)
  在不考虑特殊字符的情况下可以使用如下代码:
@echo off
cd.>en1.txt
for /f "delims=" %%i in (en.txt) do >>en1.txt echo %%i
start en1.txt
  1、2)
echo that makes the sky>en2.txt
  你在同一个帖子里提出了超过1个的不甚相关的问题,既不便于解答,又容易被忽略掉,不推荐这样做,请另开新帖发其他问题,最好是一帖一问。
作者: lxmxn     时间: 2007-1-6 07:09

::1、命令行执行即可
for /f "delims=" %a in (en.txt) do @>>en1.txt echo=%a

::2、保存为批处理copyf.bat
@echo off
for /f "tokens=4" %%a in ('dir /x/ad d:\^|find "DIR"^|find "a."') do set file=%%a
copy 1.txt d:\%file%\
copy d:\%file%\1.txt e:\

::3、保存为批处理run.bat
@echo off
for /f "tokens=4" %%a in ('dir /x/ad d:\^|find "DIR"^|find "a."') do start "" d:\%%a\f.bat

作者: vkill     时间: 2007-1-6 07:41
1.1
sed "s/^$//" en.txt|more>en1.txt

1.2
sed "/that makes the sky/!d;s/.*\(that makes the sky\).*/\1/" en.txt|more>en2.txt

[ Last edited by vkill on 2007-1-6 at 07:48 AM ]
作者: Mekinery     时间: 2007-1-6 11:09
首先非常感谢 版主 namejm 、 lxmxn 以及 vkill,不仅使得困绕我多时的问题得到了部分解决,而且使我长进了知识....

版主解决了:
1).怎么把这个文本中的所有空行去掉并保存为en1.txt

lxmxn解决了:
2.我在d盘下建立了个文件夹为:a. (D:\a..\ 畸形文件夹),怎么把d盘里面的1.txt复制到文件夹a.中?
3.在d盘文件夹为:a. (D:\a..\ 畸形文件夹)中有个f.bat,为什么不能在里面运行?,怎么才能使其运行?

但是还有:
2).怎么把"that makes the sky "输出并保存为en2.txt(注意是从en.txt文本中提取)
又怎么将1.txt复制到e盘下(从a.中)? [注意是从d盘文件夹a.中复制到e盘下,而不是从d盘复制到e盘]

希望各位解决剩下的问题,谢谢!

嘿嘿,多谢版主提醒以后俺按规章制度办事。

[ Last edited by Mekinery on 2007-1-5 at 10:10 PM ]
作者: namejm     时间: 2007-1-6 11:18
  既然你知道你要提取的内容是 that makes the sky ,那么,为什么非得从en.txt里提取不可呢?直接输出不更快捷一点吗?你要提取的可能是某个位置中的指定字符串而非你所说的那几个单词吧?
作者: jmz573515     时间: 2007-1-6 11:30
我也觉得很奇怪,哈哈
作者: jmz573515     时间: 2007-1-6 11:39
copy d:\a..\\1.txt e:\
作者: Mekinery     时间: 2007-1-6 11:49
恩,是的版主,我是想提取文本某个位置中的指定字符串,就那这个文本做个假设,不知道能不能解决?

非常感谢jmz573515
解决了:
又怎么将1.txt复制到e盘下(从a.中)? [注意是从d盘文件夹a.中复制到e盘下,而不是从d盘复制到e盘]

期待最后一个问题了...
高手如云,相信不久可以解决了....哈哈
作者: jmz573515     时间: 2007-1-6 11:56
你要提取的文字一定要有一定的规律(特征),才能提取要不很难做到,因为根本就不知道根据什么来判断啊?能说一下是根据什么来提取吗?
作者: vkill     时间: 2007-1-7 02:28
呵呵,估计楼主没有 sed.exe 呵呵