Depois de corrigir os erros básicos da sintaxe, você tem:
sed "s/\(^[a-z,0-9]*\)\(.*\)\([a-z,0-9]*$\)//g"
-
s/old/new/replaceoldcomnew -
\(^[a-z,0-9]*\)salva qualquer número de letras minúsculas ou números no início da linha (^é o início da linha) para mais tarde (referência posterior com) -
\(.*\)Salva qualquer número de caracteres para mais tarde (para referência como) -
\([a-z,0-9]*$\)salva qualquer número de letras minúsculas ou números no final da linha ($é o fim da linha) para mais tarde (referência como) -
imprime o primeiro padrão, depois o segundo, depois o primeiro novamente -
gisto é inapropriado nesta expressão. Isso significa atuar em várias correspondências na mesma linha, mas nossa expressão precisa ler a linha inteira, portanto,gnão faz sentido e deve ser omitido.
Isso ainda não funcionará, porque expressões regulares são gananciosas, então o meio \(.*\) corresponde a tudo depois da primeira palavra, resultando na reimpressão da primeira palavra no final da linha sem substituir nada.
Você pode corrigi-lo (adicionando também I para pesquisa sem distinção entre maiúsculas e minúsculas):
sed "s/\(^[a-z,0-9]*\) \(.*\) \([a-z,0-9]*$\)/ /I"
Se você quiser incluir outros caracteres além de letras e números:
sed -r 's/^([^ ]+) (.*) ([^ ]+)$/ /'
-
-rusa ERE (salva usando todas as barras invertidas) -
[^ ]+pelo menos um dos caracteres exceto espaços