Colocando cada tupla em uma linha separada:
sed 's@)\s*,\s*(@)\n(@g' your_file
Para aplicar modificações ao arquivo (em vez de imprimir o arquivo modificado para stdout):
sed -i 's@)\s*,\s*(@)\n(@g' your_file
Para relatar apenas value3
(assumindo um arquivo modificado):
awk -F',' '{print $3}' <your_new_file
Isso pressupõe que os próprios valores não contêm ,
. Veja o comentário de Michael abaixo.
Para fazer tudo de uma só vez (sem modificar o arquivo):
sed 's@)\s*,\s*(@)\n(@g' your_file | awk -F',' '{print $3}'
Para simplificar a chamada acima de awk
, aproveitei o fato de que, dado seu exemplo, podemos dividir a entrada em ,
e value3
será o terceiro valor e não terá nenhum parêntese nele. Se você quisesse value1
ou value4
, você pode fazer algo como:
sed 's@)\s*,\s*(@)\n(@g' your_file | awk -F',' '{print $1}' | sed 's/[()]//'
Isso, obviamente, pressupõe que seus valores não tenham parentes em seu conteúdo.