我试图理解Unix对话的特定代码行,并且似乎无法理解awk部分正在做什么。看不懂这个awk正则表达式
实线为:man ls | col -b | grep '^[[:space:]]*ls \[' | awk -F '[][]' '{print $2}'
。传递给awk的文本(如果由于某种原因,您没有man程序)是:ls [[email protected]] [file ...]
。不知何故,awk能够将ls的选项列表拉出来,但我无法真正理解这个正则表达式[][]
实际上是如何工作的&它匹配的。
我最好的猜测是,外括号表示一个字符类,其内容包含][
。如果是这样的话,为什么不能将内括号写为[]
。是否因为括号对[[]]
在awk中有不同的含义?
提前致谢!
@ JoshReback:这是否回答你的问题? – anubhava