1

对不起我的简单问题。但我正在寻找一种方法来删除文件中以包含 2 或 3 个大写字母并且还包含日期的字符串开头的行。例如:

ABC/ Something comes here, 29/1/2001.

在编写此类脚本的第一步中,我使用此代码查找并显示包含日期的行,但它不起作用。

sed -e 's/[0-9]+\/[0-9]+\/[0-9]+//' myfile.txt

这段代码有什么问题,我应该如何改变它来做我想做的事?

最好的。

4

2 回答 2

1
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'
于 2012-06-26T05:26:44.770 回答
1

我会尝试:

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.
于 2012-06-26T21:30:08.627 回答