Supondo que haja o |a no início da linha, vamos alterar esse padrão um pouco:
$ echo '|a Milton, John, |d 1608-1674.' | sed -E 's/^\|a ([^,]*), *([^,]*),.*//'
Milton
sed -E usa expressões regulares estendidas, portanto, podemos agrupar com (...) sem barras invertidas. Em seguida, combinamos o |a e o espaço iniciais, escolhemos tudo até a próxima vírgula para um grupo ([^,]*), , ignoramos espaços com ␣* e escolhemos outro grupo da mesma maneira que o primeiro. O ,.* come o restante da linha e podemos substituí-la pelo primeiro grupo (aqui Milton ) ou pelo segundo grupo ( John ).
É claro que, se o |a estiver lá para nos informar o que esse campo específico contém e os campos podem estar em outra ordem (como |d ... |a ... ), precisaríamos de algo diferente.