正则表达式:每行获得一个月

时间:2016-06-22 18:58:17

标签: regex linux cut

我有一个以逗号分隔的日志文件。我需要获得每一行的月份。日期位于文件的第三列,格式如下:2016-07-11 02:11:43。

以下命令将提取第三列的整个日期。

cut -d', ' -f3 logFile > newlogFile

如何在此命令中添加正则表达式以获取口,而不是整个日期? (2016-07-11 02:11:43 - > 07)。

2 个答案:

答案 0 :(得分:0)

您可以使用awk代替cut并使用split来解析month

awk -F ', ' '{split($3, a, /[- ]/); print a[2]}' logFile > newlogFile

答案 1 :(得分:0)

你几乎就在那里,只需要一个额外的角色cut命令

cut -d',' -f3 logFile|cut -c6-7 > newlogFile