【发布时间】:2015-12-22 21:36:32
【问题描述】:
我似乎不知道如何删除这些行。
在 VIM 中,我尝试了以下操作,但没有执行:
:%s/[0-9]{4}\-[0-9]{2}\-[0-9]{2}/d
然后我得到这个错误:找不到模式。
我可以执行以下操作并获得结果:
egrep '[0-9]{4}\-[0-9]{2}\-[0-9]{2}' file
打印出来:
2006-12-18
2007-02-05
2007-02-13
2007-03-06
2007-03-13
2007-04-03
2007-04-15
2007-04-16
2007-04-24
2007-05-18
2007-06-14
2007-07-15
2008-05-14
2008-05-20
2008-06-03
2008-06-10
2008-06-11
2008-06-19
2008-06-25
2008-07-15
2008-07-21
2009-10-21
2010-07-02
在 VIM 中,我尝试在模式的开头添加 ^,在末尾添加 $,但它仍然无法识别模式。
我在 Mac 10.11.2 (15C50) El Capitan 上使用终端使用 VIM。
sed 也给我带来了问题。我试过了:
sed -i '/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/d' file
我得到错误:
sed: 1: "file": command c expects \ followed by text
我尝试了带或不带-i 的sed,使用"sed 's/pattern//g' file" 和sed -e,但这些都没有对文件做任何事情。
我也尝试将[0-9] 替换为[:digit:],但这也不起作用:
sed -i '/[:digit:]{4}\-[:digit:]{2}\-[:digit]{2}/d' file
结果如下错误:
sed: 1: "file": command i expects \ followed by text
请帮忙。谢谢!
【问题讨论】: