在unix文本文件中搜索带空格的模式

时间:2015-03-31 07:34:13

标签: bash unix

我在unix文本文件中有一个模式行(如下所示) 2015年3月31日星期二00:01:10
现在我想在文件中搜索这些行,我的搜索条件将是2015年3月31日。我可以用grep来实现这一点。

因为我的搜索条件并不那么简单。

此致

DKamran

3 个答案:

答案 0 :(得分:1)

在正则表达式中使用.*来匹配日期和年份之间的任何内容。

grep "Mar 31.*2015" filename

要搜索is intelligent,请执行:

grep "is .* intelligent" filename

答案 1 :(得分:0)

你可以尝试下面的grep命令。

grep '\bMar 31 [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\} 2015\b' file

\{2\}量词恰好重复前一个标记[0-9]两次。

答案 2 :(得分:0)

这将适用于中间指定格式的任何时间,但不适用于其他字符。

/Mar\s31\s[\d:]+\s2015/

您可以对其进行测试here。如果与grep -nP一起使用,它将打印出匹配的行以及行号。