[<set>] corresponde a um caractere (estendido para elemento de agrupamento com algumas ferramentas e em algumas circunstâncias) do <set> fornecido.
[.____] corresponde especificamente a um caracteres, desde que seja . ou _ ou _ ou _ ou _ . Escusado será dizer que [.____] é o mesmo que [._] .
Se você quiser corresponder a uma das duas strings, precisará do operador de alternância | :
awk -F '\.|____' '{print $4}'
Com o moderno (e padrão) awk s, você também pode escrevê-lo:
awk -F '\.|_{4}' '{print $4}'
Observe também que [...] precisa de cotações para o shell, pois [...] também é um operador de globalização de casca. No seu caso, você citou apenas a parte ____ do shell. Isso não foi necessário, pois _ não é especial para o shell. Isso significa que, com -F[."____"] , se houvesse um arquivo chamado -F. ou -F_ no diretório atual, o shell globbing expandiria -F[."____"] para esses antes de passar para awk . Se não, -F[.____] seria passado para awk (apesar de alguns shells relatarem um erro em vez daquele glob sem correspondência).