Chinaunix

标题: 再次请教sed问题 [打印本页]

作者: zbxy110    时间: 2011-10-09 09:38
标题: 再次请教sed问题
本帖最后由 zbxy110 于 2011-10-09 14:18 编辑

比如
date -d "10 minutes ago" +\%k:%M
输出结果是
9:25

但是我想让它输出这样
9:2
这个怎么写

再次请教一个问题,下面如何实现提取前面的ip地址:
113.5.23.212/css/baner.css
13.56.3.212/comon/top.js
11.6.2.213/comon/public.js

结果是这样
113.5.23.212
13.56.3.212
11.6.2.213
作者: mpstat    时间: 2011-10-09 09:40
什么意思,是把分的零头给去掉了?
作者: zbxy110    时间: 2011-10-09 09:40
是的
作者: cu_little_bird    时间: 2011-10-09 09:42
你这样的需求也太牛了,只有把9:25取出来当字符串处理,把5去掉
作者: zbxy110    时间: 2011-10-09 09:45
这样的需求也是输出匹配日志中每10分钟内的结果
作者: cu_little_bird    时间: 2011-10-09 09:46
回复 5# zbxy110


    date -d "10 minutes ago" +\%k:%M|perl -p -e 's/.$//g'
这样行不行
作者: mpstat    时间: 2011-10-09 09:50
回复 5# zbxy110


    纯date应该没有这个功能,你可以在匹配和字符串处理上做文章
作者: zbxy110    时间: 2011-10-09 09:52
回复 6# cu_little_bird


    这样写可以的
date -d "10 minutes ago" +\%k:%M|sed -e 's/.$//g' 这样也可以了
作者: rayzhang11    时间: 2011-10-09 09:52
date -d "10 minutes ago" +\%k:%M|sed 's/[0-9]$//g'
作者: zbxy110    时间: 2011-10-09 09:52
多谢 楼上的几位   解决了
作者: Shell_HAT    时间: 2011-10-09 09:56
  1. mytime=`date -d "10 minutes ago" +\%k:%M`
  2. echo "${mytime:0:4}"
复制代码

作者: zbxy110    时间: 2011-10-09 14:15
版主高手啊,这样也能实现,学习了

再次请教一个问题,下面如何实现提取前面的ip地址:
113.5.23.212/css/baner.css
13.56.3.212/comon/top.js
11.6.2.213/comon/public.js
作者: baoyu05    时间: 2011-10-09 14:20
本帖最后由 baoyu05 于 2011-10-09 14:29 编辑
版主高手啊,这样也能实现,学习了

再次请教一个问题,下面如何实现提取前面的ip地址:
11 ...
zbxy110 发表于 2011-10-09 14:15
  1. grep -Eo ^[0-9.]+
复制代码

作者: zbxy110    时间: 2011-10-09 14:37
baoyu05 发表于 2011-10-09 14:20


楼上的结果是这样的:
113.5.23.212
.
13.56.3.212
.
11.6.2.213
.


如果是这样最好了
113.5.23.212
13.56.3.212
11.6.2.213
作者: zbxy110    时间: 2011-10-09 14:48
以解决了

awk -F/ '{print $1}'
作者: Shell_HAT    时间: 2011-10-09 15:30
回复 12# zbxy110
  1. sed 's#/.*##' urfile
复制代码
  1. cut -d/ -f1 urfile
复制代码
  1. awk -F/ 'NF=1' urfile
复制代码
  1. awk 'gsub(/\/.*/,"")' urfile
复制代码

作者: Shell_HAT    时间: 2011-10-09 15:32
回复 14# zbxy110


是你的文件有问题吧?
#cat urfile
113.5.23.212/css/baner.css
13.56.3.212/comon/top.js
11.6.2.213/comon/public.js
#grep -Eo ^[0-9.]+ urfile
113.5.23.212
13.56.3.212
11.6.2.213

试试这样:
  1. dos2unix urfile | grep -Eo ^[0-9.]+
复制代码

作者: zbxy110    时间: 2011-10-09 16:05
回复 17# Shell_HAT

刚才我搞错了
跑成这样了
    grep -Eo [0-9.]+ urfile
作者: bikong0411    时间: 2011-10-10 16:40
date -d "10 minutes ago" +\%k:%M  | sed 's/.$//'

echo "113.5.23.212/css/baner.css" | sed 's#/.*##g'
作者: bikong0411    时间: 2011-10-10 16:41
shell本身就能搞定的,不需要sed
作者: java_html    时间: 2011-10-10 16:53
aa='113.5.23.212/css/baner.css'
echo ${aa%%\/*}




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2