分页: 1 / 1

如何操作这个txt文件?

发表于 : 2010-04-08 21:00
罗非鱼
假定目标文件:
1require 'rubygems'
2require 'hpricot'
3require 'open-uri'
4doc = Hpricot(open('http://www.google.com/search?q=ruby'))
50links = doc/"//a[@class=l]"
60links.map.each {|link| puts link.attributes['href']}
最后两行的前两个,分别是:50\60
我如何得到这样的文件:
require 'rubygems'
require 'hpricot'
require 'open-uri'
doc = Hpricot(open('http://www.google.com/search?q=ruby'))
links = doc/"//a[@class=l]"
links.map.each {|link| puts link.attributes['href']}
我实际上是想知道,如何对文件每行进行正则解析,除去每行行首的自然数(可能是一位,也可能是两位),请问这个shell如何写?

Re: 如何操作这个txt文件?

发表于 : 2010-04-08 21:21
速腾1994
好难!!

Re: 如何操作这个txt文件?

发表于 : 2010-04-09 9:03
t3swing
vi版本 :%s/^[0-9]*//g
sed也一样 把开头的数字替换成空就ok了 ,很简单的

Re: 如何操作这个txt文件?

发表于 : 2010-04-09 9:18
罗非鱼
可否全部写全?谢谢

Re: 如何操作这个txt文件?

发表于 : 2010-04-09 10:05
ptpt52
假设你的文本在文件 file 中,那么

代码: 全选

cat file | sed 's/^[0-9].//g'
即可 :em11

Re: 如何操作这个txt文件?

发表于 : 2010-04-09 13:02
罗非鱼
通过google和各位的提示,我会处理这个问题了。
现在为了举一反三,假设情形更加复杂一点:
假定目标文件:
sdgdsggg
1require 'rubygems'
2require 'hpricot'
3require 'open-uri'
4doc = Hpricot(open('http://www.google.com/search?q=ruby'))
50links = doc/"//a[@class=l]"
60links.map.each {|link| puts link.attributes['href']}
最后两行的前两个,分别是:50\60
我如何得到这样的文件:
sdgdsggg
require 'rubygems'
require 'hpricot'
require 'open-uri'
doc = Hpricot(open('http://www.google.com/search?q=ruby'))
links = doc/"//a[@class=l]"
links.map.each {|link| puts link.attributes['href']}

我通过下面的两条命令得到了结果:
pt@pt-laptop:sed -n '1p' sed.txt >> sed1.txt
pt@pt-laptop:~$ sed -n '2,$p' sed.txt | sed s/^[0-9]*[0-9]//g >> sed1.txt
个人感觉太臃肿,可否写成一条sed语句??

Re: 如何操作这个txt文件?

发表于 : 2010-04-09 13:19
t3swing
:em20
lz把问题搞复杂了 ,这个处理起来没区别!

Re: 如何操作这个txt文件?

发表于 : 2010-04-09 13:22
eexpress
估计是没看过正则的。

Re: 如何操作这个txt文件?

发表于 : 2010-04-14 10:34
onelynx
不懂正则,sed ,vim 等文本处理也不会很熟练

Re: 如何操作这个txt文件?

发表于 : 2010-05-18 12:43
HuaChong
两个写在一起用-e参数
sed -e 'blaba' -e 'blabla2' 这样
或者sed '
blabla
blabla'
之间加入换行或者把所有的操作写在一个文件里,用sed -f 来操作