1 votes

Supprimer la virgule en fin de ligne dans sed sur macOS ?

J'ai créé un fichier dans TextEdit sur le Mac appelé stuff.txt :

stuff and stuff
More stuff
Stuff with a , in the middle
Stuff with a comma at the end,
More stuff

Si je lance cette commande :

cat stuff.txt | sed 's/,$//'

la sortie est alors

stuff and stuff
More stuff
Stuff with a , in the middle
Stuff with a comma at the end
More stuff

J'ai un autre fichier créé par le grepping de divers fichiers .eml créés par Save As dans Thunderbird sur Mac :

grep '@' *.eml | grep -v 'From' | grep -v 'Message-ID' | sed 's/^.*: //' > output.txt

La course à pied cat output.txt | sed 's/,$//' ne supprime pas les virgules finales. Vous avez besoin d'aide ?

Plus d'informations : J'ai essayé le file sur les deux fichiers :

% file stuff.txt
stuff.txt: ASCII text
% file output.txt
output.txt: ASCII text, with CRLF line terminators

1voto

reallydismayed Points 131

Il semble que sed ne fonctionne pas sur les fichiers CRLF (merci @nohillside).

J'ai résolu le problème en utilisant cat dans un terminal et en copiant et collant la sortie dans un nouveau fichier.

Bien que le corps du texte provienne d'une machine Linux, il est étrange que Mac Thunderbird mette CRLF dans la ligne To : du courriel.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X