【发布时间】:2017-08-08 16:49:10
【问题描述】:
我试图理解 Unix 演讲中的特定代码行,但似乎无法理解 awk 部分在做什么。
整行是:man ls | col -b | grep '^[[:space:]]*ls \[' | awk -F '[][]' '{print $2}'。传递给 awk 的文本(如果由于某种原因您没有 man 程序)是:ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]。不知何故,awk 能够将选项列表拉出到 ls,但我无法真正理解这个正则表达式 [][] 的实际工作原理以及它的匹配项。
我最好的猜测是外括号表示一个字符类,其内容包含][。如果是这样,为什么内括号不能写成[]。是不是因为一对括号[[]]在awk中有不同的含义?
提前致谢!
【问题讨论】: