对不起我的简单问题。但我正在寻找一种方法来删除文件中以包含 2 或 3 个大写字母并且还包含日期的字符串开头的行。例如:
ABC/ Something comes here, 29/1/2001.
在编写此类脚本的第一步中,我使用此代码查找并显示包含日期的行,但它不起作用。
sed -e 's/[0-9]+\/[0-9]+\/[0-9]+//' myfile.txt
这段代码有什么问题,我应该如何改变它来做我想做的事?
最好的。
sed -r -e '/[A-Z]+.*[0-9]+\/[0-9]+\/[0-9]+/p;d' # on Mac OSX: sed -E -e ...
然后只是删除这些行做类似的事情......
'/[A-Z]+.*[0-9]+\/[0-9]+\/[0-9]+/d'
我会尝试:
sed -e '/^[A-Z]\{2,3\}.*[0-9]\{1,2\}\/[0-9]\{1,2\}\/[0-9]\{4\}/ d' input-file
解释:
^ Match at the beginning of the pattern.
[A-Z]\{2,3\} Match two or three uppercase ASCII letters.
.* Match anything.
[0-9]\{1,2\}\/ Match the day, one or two digits, and the separator.
[0-9]\{1,2\}\/ Same match for the month.
[0-9]\{4\} Match four digits for the date.
d If previous regexp matched, delete the line.