comment supprimer les espaces vides dans csv dans unix

Salut, je voudrais utiliser awk ou sed pour supprimer les espaces vides avant une virgule dans csv. Un exemple de fichier d’entrée serait: “abcd”, “test 123”

Fichier de sortie: “abcd”, “test 123”

Ne supprimez que les espaces blancs avant une virgule, mais pas entre les mots. recherche de la fonction de compensation dans unix. S’il vous plaît aider. Merci beaucoup.

Cela peut être facilement fait avec sed:

sed 's/ *,/,/' csv-file

Cela indique à sed de supprimer les séquences de caractères blancs (de n’importe quelle longueur) avant les virgules.

Remarques:

  1. L’hypothèse est que les virgules sont illégales dans les champs (par exemple, “test, 123” est illégal).
  2. Comme vous l’avez demandé, cela supprime uniquement les espaces avant les virgules. Si vous souhaitez également supprimer les espaces qui se trouvent après des virgules:

    sed 's/ *, */,/' csv-file

Cela devrait fonctionner:

 cp file1 file2 perl -pi -e 's/" ,"/","/g' file2