任何人都可以帮助搜索&替换脚本(sed)以匹配日期2009年2月24日并将其替换为空格?sed匹配日期格式2013年4月25日
sed 's/ \(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Aug\|Sep\|Oct\|Nov\|Dec\) [0-9][0-9], [2][0-9][0-9][0-9]$//g'
我想在文件上面的语法,但输出似乎不匹配!
任何人都可以帮助搜索&替换脚本(sed)以匹配日期2009年2月24日并将其替换为空格?sed匹配日期格式2013年4月25日
sed 's/ \(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Aug\|Sep\|Oct\|Nov\|Dec\) [0-9][0-9], [2][0-9][0-9][0-9]$//g'
我想在文件上面的语法,但输出似乎不匹配!
你只需要删除$
(美元符号):在你的问题了一句
sed 's/ \(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Aug\|Sep\|Oct\|Nov\|Dec\) [0-9][0-9], [2][0-9][0-9][0-9]//g'
测试:
kent$ echo "to match a date Feb 24, 2009 and replace it with a white space?"|sed 's/ \(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Aug\|Sep\|Oct\|Nov\|Dec\) [0-9][0-9], [2][0-9][0-9][0-9]//g'
to match a date and replace it with a white space?
我的Mac上连这个sed的不起作用:
sed 's/Feb\|Mar//g'
还没有这个:
sed 's/Feb|Mar//g'
然而,当我使用扩展的正则表达式开关-E
,做起事情是这样的工作:
sed -E 's/ (Jan|Feb|Mar|Apr|May|Jun|Aug|Sep|Oct|Nov|Dec) [0-9][0-9], [2][0-9][0-9][0-9]//g'
在Linux上,你可以使用-r
标志代替-E
:
sed -r 's/ (Jan|Feb|Mar|Apr|May|Jun|Aug|Sep|Oct|Nov|Dec) [0-9][0-9], [2][0-9][0-9][0-9]//g'
伟大工程在Redhat然而,不在OS X上。 – Dev 2013-04-25 23:12:09
检查Mac os的其他答案。有趣的是,你用'linux'标记了这个问题..我除了删除美元之外没有更改你的代码.... :) – Kent 2013-04-25 23:15:34