请解释以下命令的含义:

请解释以下命令的含义:
awk -F'[ ()+:]+' '

我在脚本中使用它。在这种情况下,我可以从以下位置获取括号中的时间:

Fri Dec 18 11:13 - 11:15  (00:02)    
Fri Dec 18 09:11 - 19:42 (1+10:31)

但是它是如何工作的呢?有人能解释一下吗?

答案1

awk将输入记录拆分为字段,并使用字段分隔符(FS)来实现。-F选项用于设置FS。当FS长度为多个字符时,它将被视为正则表达式。

在这种情况下,FS[ ()+:]+

  • [...],称为括号表达式,用于匹配多个字符中的一个。[ ()+:]表示空格、括号+:字符中的任意一个。
  • +在字符或括号表达式等之后,匹配一个或多个该字符、表达式等。

因此,该模式表示一个或多个空格、括号、加号或冒号。

使用此表达式拆分成字段,您将看到:

  • )结束该行意味着最后一个字段为空
  • 1+10:3100:02都进行了拆分,以便倒数第二和第三个字段分别是小时和分钟,因为+:都用于分隔字段。

相关内容