分页: 1 / 1

想实现自动文件编辑,删除其中的不需要段落,请教高手如何实现,sed如何输出查找到的行号?

发表于 : 2011-05-18 10:49
avcenter
有如下的文本:
<list item file="1"
file is "adobe.pdf"
/list>
<list item file="2"
file is "adobe2.pdf"
/list>

<list item file="3"
file is "adobe3.pdf"
/list>
<list item file="4"
file is "adobe4.pdf"
/list>
文本可能很长,如果我需要的文件存在另一个文件need中,比如含有 adobe3.pdf,现在需要一个脚本删除其它的不需要的list item段落,使输出如下,请教脚本应该如何编写?多谢各位。

<list item file="3"
file is "adobe3.pdf"
/list>

Re: 想实现自动文件编辑,删除其中的不需要段落,请教高手如何实现,sed如何输出查找到的行号?

发表于 : 2011-05-18 11:02
qgymib
反正正则表达式能够实现。不过要是对pdf进行操作……问ee :em02

Re: 想实现自动文件编辑,删除其中的不需要段落,请教高手如何实现,sed如何输出查找到的行号?

发表于 : 2011-05-18 11:26
avcenter
感谢你的回复。
没有PDF文件操作的意思,只不过是个文件的例子。关键是如何删除adobe4.pdf文件行和之前的<list和和之后的/list>行

Re: 想实现自动文件编辑,删除其中的不需要段落,请教高手如何实现,sed如何输出查找到的行号?

发表于 : 2011-05-18 21:57
fnan
看来只是用need文本作为匹配模式,然后输出上下文:
grep -C 1 -F -f need.txt 如下的文本.txt

Re: 想实现自动文件编辑,删除其中的不需要段落,请教高手如何实现,sed如何输出查找到的行号?

发表于 : 2011-05-18 22:33
eexpress
awk用"/list>\n"分段,判断带adobe3的,输出就是。

Re: 想实现自动文件编辑,删除其中的不需要段落,请教高手如何实现,sed如何输出查找到的行号?

发表于 : 2011-05-18 22:48
avcenter
楼上可否就awk分段举个例子,查了许多资料,也许没找对,反正没找到什么.

多谢,如果能就上面所述直接给出语句,就更加感激了.再次感谢你的帮助. :em01

Re: 想实现自动文件编辑,删除其中的不需要段落,请教高手如何实现,sed如何输出查找到的行号?

发表于 : 2011-05-19 21:27
死亡阴影
只输出?
<list item file="3"
file is "adobe3.pdf"
/list>

是否可以匹配 关键字 adobe3.pdf然后 显示其上下两行呢?
#!/bin/bash
line=`cat -n 这个文本|grep adobe3.pdf|awk '{print $1}'`
然后用sed输出
$line-1
$line
$line+1
具体sed 忘记了 :em20