最近有个朋友要处理一些文本数据
原始数据大概如下:
[root@goolen goolen]# cat haiqing.log
a,b,c,d,20141123,121010
a,b,c,d,20141124,121011
a,h,d,d,20141125,121012
a,g,g,w,20141126,121013
a,d,h,e,20141127,121014
a,x,u,r,20141128,121015
他需要把把后面的日期改为yyyy-mm-dd的格式,时间改为HH:MI:SS的格式
我简单的用几个shell命令处理了一下,能达到目的,当然也可以用其他语言来实现
a,b,c,d,2014-14-11,23:12:10 a,x,u,r,2014-14-11,28:12:10
[root@goolen goolen]# for haiqing in `cat haiqing.log`;do echo "${haiqing:0:8}${haiqing:8:4}-${haiqing:12:2}-${haiqing:14:2},${haiqing:17:2}:${haiqing:19:2}:${haiqing:21:2}";done
a,b,c,d,2014-11-23,12:10:10
a,b,c,d,2014-11-24,12:10:11
a,h,d,d,2014-11-25,12:10:12
a,g,g,w,2014-11-26,12:10:13
a,d,h,e,2014-11-27,12:10:14
a,x,u,r,2014-11-28,12:10:15
[root@goolen goolen]# sed -e 's/\(...........\)\(..\)\(.........\)$/\1-\2-\3/' -e 's/\(....\)\(..\)\(..\)$/\1:\2:\3/' haiqing.log
a,b,c,d,2014-11-23,12:10:10
a,b,c,d,2014-11-24,12:10:11
a,h,d,d,2014-11-25,12:10:12
a,g,g,w,2014-11-26,12:10:13
a,d,h,e,2014-11-27,12:10:14
a,x,u,r,2014-11-28,12:10:15
[root@goolen goolen]# sed -e 's#\([^0-9][0-9][0-9][0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)#\1-\2-\3#' -e 's#\([^0-9][0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)#\1:\2:\3#' haiqing.log
a,b,c,d,2014-11-23,12:10:10
a,b,c,d,2014-11-24,12:10:11
a,h,d,d,2014-11-25,12:10:12
a,g,g,w,2014-11-26,12:10:13
a,d,h,e,2014-11-27,12:10:14
a,x,u,r,2014-11-28,12:10:15
刚好也有另一位朋友也来问我shell方面的问题
他的需求如下:
/opt/app/oracle/product/10.2.0/network/admin/listener.ora
shell里传参数,其中一个参数是一个文件的绝对路径,在shell需要把这个路劲截取为两部分,一部分是路劲,一部分是文件名
如下:
/opt/app/oracle/product/10.2.0/network/admin/ 路径
listener.ora 文件名
其实这种需求,有现成的shell命令可以处理,当然用其他命令也能实现,我试了几种方法,如下:
[root@goolen goolen]# path='/opt/app/oracle/product/10.2.0/network/admin/listener.ora'
取路劲的:
[root@goolen goolen]# echo ${path%/*}
/opt/app/oracle/product/10.2.0/network/admin
[root@goolen goolen]# dirname $path
/opt/app/oracle/product/10.2.0/network/admin
取文件名的:
[root@goolen goolen]# echo $path |awk -F'/' '{print $NF}'
listener.ora
[root@goolen goolen]# echo ${path##*/}
listener.ora
[root@goolen goolen]#
[root@goolen goolen]# basename $path
listener.ora
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23249684/viewspace-1350240/,如需转载,请注明出处,否则将追究法律责任。