Pregunta de desinfección de datos: expresión regular para eliminar combinaciones de espacios finales y comas

Pregunta de desinfección de datos: expresión regular para eliminar combinaciones de espacios finales y comas

Tengo cadenas de direcciones a las que (debido a una programación inicial deficiente) se les permitió demasiada entrada de texto libre. Mientras limpiaba este desorden heredado, me di cuenta de que al final de los campos de dirección, frecuentemente (y frecuentemente no) hay comas de las que quiero deshacerme.

El problema es que (¡nuevamente, con frecuencia!) aquellos que ingresan los datos (pagados por línea...) ingresan cadenas como:

`address_1_string  ,  `

Esa es dirección_1_cadena seguida de dos espacios seguidos de la coma que deseo eliminar, seguido de dos espacios más. El número de espacios (antes o después de la coma) es arbitrario y normalmente va de 0 a 5. El problema se complica aún más por el hecho de que address_string_1puede tener comas internas (válidas).

Entonces, lo que estoy buscando es una expresión regular que vaya hasta el final de la línea, elimine los espacios finales, la primera coma y luego los espacios adicionales hasta que sea válido [a-zA-Z0-9] ([:alphanum: ]?) se encuentra el carácter.

Tengo nociones de expresiones regulares, pero esto está por encima de mi nivel salarial. Esta es mi primera publicación en Stackexchange, así que si estoy en el lugar equivocado, rediríjame. TIA.

Respuesta1

< input sed 's/[[:space:],]*$//' > output

Eliminaría todos los espacios y comas al final de la línea.

Para editar el archivo en su lugar, algunas sedimplementaciones tienen una -iopción inspirada en la opción perlde -i:

sed -i 's/[[:space:],]*$//' input-and-output    # GNU, busybox, NetBSD, OpenBSD
sed -i '' 's/[[:space:],]*$//' input-and-output # FreeBSD, macOS

información relacionada