1. 程式人生 > >awk 命令 已中括號分割字串

awk 命令 已中括號分割字串

 

問題

echo "a[b]c"|awk -F'[\]\[]' '{ print $3 }'  
得到
c
echo "a[b]c"|awk -F'[\[\]]'  '{ print $3 }'
得到空?

 

經過一番研究發現
[][]處理成為匹配]或[
[[]]處理成為匹配[]
原因可能是字元組不允許為空:
[][]中第一個]真正作為]字元,而不是元字元,接著是字元[再遇到元字元]後字元組構造完畢,匹配]或[
[[]]同理第二個[也沒有作為元字元
測試程式碼:

echo ']' | egrep '[]]'

e