Cela devrait être vraiment simple, mais pour une raison quelconque, cela ne fonctionne pas:
sed -i.bak -E 's/\t/ /' file.txt
Au lieu de remplacer les caractères de tabulation, il remplace les t
caractères. J'ai essayé toutes les variantes de ce que je pouvais penser, jouer avec citation, etc. J'ai googlé et trouvé tout le monde en utilisant des expressions assez similaires et ils semblent travailler pour eux.
Le -E
est une chose d'OS X. Je pensais que l'échec pouvait être le résultat d'une bizarrerie bizarre d'OS X sed
, alors je l'ai essayé aussi avec Ruby (sans le -i
) et j'ai obtenu le même résultat:
ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new
J'utilise Bash 3.2.51 sur OS X et iTerm, bien que je ne vois pas en quoi ces applications pourraient être terriblement pertinentes. Je n'ai pas défini de variables d'environnement étranges, bien que je puisse en publier toutes celles que vous jugez pertinentes.
Quel pourrait être le problème?
Mise à jour : Je dois avoir fait une autre erreur oufautefrappe quand j'ai essayé la version Ruby, puisque Gilles souligne qu'il fait le travail (et jeai jamais lui avait me diriger mal!). Je ne suis pas sûr de ce qui s'est passé, mais je suis à peu près sûr que ce doit être mon erreur.
\t
dans lased
déclaration parCTRL-V<TAB>
où se<TAB>
trouve la touche de tabulation et laCTRL-V
touche de contrôlev
enfoncée.