Le moyen le plus rapide et le plus essentiel de remplacer «\ r \ n» par «\ n» dans un fichier?

11

Je suppose que trc'est une méthode plus fondamentale et donc probablement un moyen plus rapide de remplacer des choses dans un fichier donné.

Cependant tr ne peut remplacer que des quantités égales de caractères. sens...

2 caractères ne peuvent être remplacés que par 2 caractères ce qui signifie remplacer

\r\navec \nest hors de question viatr

est la prochaine meilleure option sed?

est sed le moyen le plus simple et le plus rapide de le remplacer \r\npar \ndans un fichier étant donné le manque de capacités dans tr?

aimerait un exemple si possible.

user73235
la source
Que signifie exactement "le plus essentiel"?
Keith Thompson

Réponses:

23

Avec sed, vous pouvez faire:

sed 's/\r$//'

De la même manière tr, vous n'avez qu'à supprimer \r:

tr -d '\r'

bien que cela supprime toutes les instances de \r, pas nécessaire suivi de \n.

cuonglm
la source
2
Ces deux ne sont pas identiques. Le premier avec remplace '\ r \ n' par '\ n' (effectivement), mais le second supprimera tous les '\ r' où qu'ils apparaissent. Il est rare que le retour chariot apparaisse dans un fichier texte, sauf à la fin de la ligne, mais cela peut arriver.
Ams
4

Ou utiliser dos2unix

par exemple:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

nous pouvons voir remplacer \r\npar\n

بارپابابا
la source
Ce n'est pas un programme dans la liste OP mais à mon avis la façon la plus propre de faire le travail. Je l'utilise personnellement chaque fois que j'ai besoin d'une telle conversion.
2017