+ -
当前位置:首页 → 问答吧 → 求高人帮忙:shell能否实现这样的需求?

求高人帮忙:shell能否实现这样的需求?

时间:2011-03-09

来源:互联网

文件的每行都是类似这样的
/web/news/2011/0309/1.shtml
/web/news/2011/0309/2.shtml
/web/news/2011/0308/3.shtml
/news110309-1.shtml
/news110309-2.shtml
/news110308-3.shtml


能否实现把文件格式是
/web/news/2011/0309/1.shtml
转成
/news110309-1.shtml
就是去掉前面的/web/,然后格式是news+年(2010年只取10,2009年只取09)+月+日+‘-’+id

万分感谢先!唉,头大中

作者: kookies   发布时间: 2011-03-09

echo "/web/news/2011/0309/1.shtml" |gawk '{print gensub(/\/web(\/.*)\/20(..)\/(.*)\/(.*)/,"\\1\\2\\3-\\4",1,$0)}'
/news110309-1.shtml

作者: yinyuemi   发布时间: 2011-03-09

本帖最后由 昭襄王 于 2011-03-09 14:35 编辑
  1. sed -e 's:/:-:5' -e 's:news/..:news:' -e 's:/web::g' -e 's:/::g' file
  2. news110309-1.shtml
  3. news110309-2.shtml
  4. news110308-3.shtml
复制代码

作者: 昭襄王   发布时间: 2011-03-09



QUOTE:
昭襄王 发表于 2011-03-09 14:32




    谢谢!缺少最前面的/
结果需要是
/news110309-1.shtml

作者: kookies   发布时间: 2011-03-09

回复 kookies
  1. sed -e 's:/:-:5' -e 's:news/..:news:' -e 's:/web::g' -e 's:/::2' t002
  2. /news110309-1.shtml
  3. /news110309-2.shtml
  4. /news110308-3.shtml
复制代码

作者: 昭襄王   发布时间: 2011-03-09

热门下载

更多