Outro trabalho típico para o awk:
POSIXLY_CORRECT=1 LC_ALL=C awk '
$1 ~ /^[A-Z]{3}$/ {
if ($1 == "CSI")
file = "csi.txt"
else
file = "rest.txt"
}
file {print > file}'
POSIXLY_CORRECT
é apenas no caso de seu awk
ser o GNU awk que não reconhece o {...}
a menos que esteja no modo de conformidade padrão.
LC_ALL=C
é garantir que [A-Z]
signifique o caractere ASCII de A
a Z
, caso contrário, esse intervalo pode incluir outros caracteres, dependendo das configurações de localização.
Se estiver no Solaris, use command -p awk
ou /usr/xpg4/bin/awk
, caso contrário, você pode acabar com /bin/awk
, que não deve mais ser usado.