用shell脚本,删除文件开头的一部分东西。

ws84643557 2012-12-07 05:00:11
怎么用shell脚本把一个文件的前面部分删掉。
比如我想删掉下面我给出的数据。
可以用 sed '1,17d'来删除1 到 17行,
但是现在是 17 这个数是未知的。只知道要删除到第一个 <item> (第17行)。
有什么方法吗,最好不要写一堆脚本来找这个 <item>的行号, 最好有比较少的脚本代码。


<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type='text/css' href='http://news.sohu.com/rss/rss.css'?>
<rss version="2.0">
<channel>
<title>新闻中心</title>
<image>
<title>www.sohu.com</title>
<link>http://www.sohu.com</link>
<url>http://images.sohu.com/logo1.gif</url>
</image>
<description>快捷、海量、权威;为广大网友提供全球新闻信息</description>
<link>http://news.sohu.com/</link>
<language>zh-cn</language>
<docs>http://news.sohu.com/</docs>
<generator>www.sohu.com</generator>
<ttl>5</ttl>
<item>
.....
下面还有很多东西。
...全文
527 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ws84643557 2012-12-14
  • 打赏
  • 举报
回复
引用 3 楼 ljc007 的回复:
引用但是现在是 17 这个数是未知的。只知道要删除到第一个 <item> (第17行)。 Plain Text code?1sed '0,/<item>/d' urfile
谢谢,要找的就是这个答案了!!!!
smallbear_2008 2012-12-12
  • 打赏
  • 举报
回复
引用 3 楼 ljc007 的回复:
引用但是现在是 17 这个数是未知的。只知道要删除到第一个 <item> (第17行)。 Plain Text code?1sed '0,/<item>/d' urfile
这个最方便了 呵呵
smallbear_2008 2012-12-12
  • 打赏
  • 举报
回复
引用 楼主 ws84643557 的回复:
怎么用shell脚本把一个文件的前面部分删掉。 比如我想删掉下面我给出的数据。 可以用 sed '1,17d'来删除1 到 17行, 但是现在是 17 这个数是未知的。只知道要删除到第一个 <item> (第17行)。 有什么方法吗,最好不要写一堆脚本来找这个 <item>的行号, 最好有比较少的脚本代码。 <?xml version='1.0' enc……
删除 第一行到<item>之间的内容: a=`grep -n "<item>" urfile|sed -n '1p' |awk -F ":" '{print $1}'` sed "1,$a d" urfile
ljc007 2012-12-11
  • 打赏
  • 举报
回复
引用
其实我的任务是要打印以<title> 开头 以</title>结尾的行 </title>。 但是只用grep <title>的话,会有一些错误信息。
grep '<title>.*</title>' urfile
grep -o '<title>.*</title>' urfile
ljc007 2012-12-11
  • 打赏
  • 举报
回复
引用
但是现在是 17 这个数是未知的。只知道要删除到第一个 <item> (第17行)。
sed '0,/<item>/d' urfile
ForestDB 2012-12-11
  • 打赏
  • 举报
回复
学个脚本,然后看看xml库,想怎么搞就怎么搞。
RedWolf1999 2012-12-10
  • 打赏
  • 举报
回复
不查找应该是不可能实现的。 随便写的,你可以自己优化一下: cat hello.c|grep -m1 -n "<title>"|awk '{print $1}'|sed "s/:.*//g"
ws84643557 2012-12-07
  • 打赏
  • 举报
回复
其实我的任务是要打印以<title> 开头 以</title>结尾的行 </title>。 但是只用grep <title>的话,会有一些错误信息。 如果能只打印这样的模式也可以。 <item> <title>视频:男扮女装二度偷窥终被抓</title> 有什么方法可以只输出这样模式的也行。就是上一行是 <item>\n 下一行是 <title> .* </title>\n 这样的行。

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧