echo "a[b]c"|awk -F'[\]\[]' '{ print $3 }' 得到 c echo "a[b]c"|awk -F'[\[\]]' '{ print $3 }' 得到空?
经过一番研究发现 [][]处理成为匹配]或[ [[]]处理成为匹配[] 原因可能是字符组不允许为空: [][]中第一个]真正作为]字符,而不是元字符,接着是字符[再遇到元字符]后字符组构造完毕,匹配]或[ [[]]同理第二个[也没有作为元字符 测试代码:
echo ']' | egrep '[]]'
echo '[' | egrep '[[]'