Awk (verifique também Awk Info ) é lindo com esse tipo de pergunta. Experimente:
awk -F'[],] *' '{print $2}' cities
Isso define um separador de campo -F
as [],] *
- que significa uma ocorrência de um colchete de fechamento ou uma vírgula, seguida por zero ou qualquer número de espaços. Claro que você pode mudar isso para atender a qualquer exigência. Leia as expressões regulares.
Quando a linha estiver dividida, você poderá fazer o que quiser com o resultado da divisão. Aqui, decidi imprimir o segundo campo apenas com print $2
. Note que é importante usar aspas simples em torno das instruções do awk, caso contrário, $ 2 será substituído pelo shell.