$ grep -o 'purple, [^,]*' input
purple, orange
A opção -o
imprime o apenas a string correspondente ao padrão.
O padrão é a string purple,
, seguida por zero ou mais caracteres que não são vírgulas.
Está procurando uma maneira de gerar um determinado campo em uma linha e apenas o próximo campo depois dele.
Digamos que eu tenha um arquivo com o conteúdo " azul, verde, roxo, laranja, preto, branco, ", como eu procuraria a palavra " roxo" "e imprima somente na tela" roxo, laranja, ".
Cheguei até aqui, mas esperava que vocês pudessem me ajudar a omitir o " preto, branco " da saída.
cat filename | sed -n -e 's/^.*\(purple\)//p'
purple, orange, black, white,
Tags text-processing awk sed