0

我想问一下我如何才能egrep以以下形式仅提取日期的月份部分

mm/dd/yyyy at hh:mm:ss 

我已经尝试过积极的后向断言,但它似乎没有用。这段代码的上下文是:我正在查看多个文件并将每个文件的日期收集到timestamp.txt. 在原始文件中,所有日期都位于之后TimeStamp:(注意冒号后的空格)

我对正则表达式不太擅长,所以我知道我也缺少表达式来阻止/前两位数字之后的内容。如果有人可以帮助我,那就太棒了:D

egrep "(?<=TimeStamp:\s)" $CURFILE | sort >> ../timestamp.txt

谢谢!

4

2 回答 2

1
echo "TimeStamp: 12/10/2012"| grep TimeStamp: | cut -d ' ' -f 2 |cut -d '/' -f 1

该代码未经测试,可能存在参数转义问题。

这个想法是首先用空格(或冒号)分割输入,然后用斜杠分割。如果行中有更多空格,您可能需要操作 -f 值或添加更多拆分。

于 2013-10-20T07:23:40.363 回答
1

不确定 egrep 是否可以,但 perl 可以

echo "TimeStamp: 12/10/2012"| perl -n -e 'print $1f m#: (..)/#'

这是另一种方法

  echo "TimeStamp: 12/10/2012"| awk -F/ '{print $1}' | awk '{print $2}'
于 2013-10-19T07:06:19.107 回答