GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Tr:convertire l'apostrofo in ascii?

Sto cercando di convertire una virgoletta singola destra in un apostrofo usando tr .

tr "`echo -e '\xE2\x80\x99'`" "`echo -e '\x27'`" < a > b

dato un file codificato UTF-8 chiamato a che contiene questo esempio:

We're not a different species
“All alone?” Jeth mentioned.

OS X usa il BSD tr e produce un bel risultato:

We're not a different species
“All alone?” Jeth mentioned.

Ubuntu usa GNU tr e produce questo brutto risultato:

We'''re not a different species
''<9C>All alone?''<9D> Jeth mentioned.

Come posso realizzare questa conversione in Ubuntu?

Risposta accettata:

Potresti provare qualche altro strumento, come sed :

$ sed "s/’/'/g" <a
We're not a different species
“All alone?” Jeth mentioned.

Oppure, dato che stiamo eseguendo una traduzione semplice, usa y comando per sed :

$ sed "y/’/'/" <a
We're not a different species
“All alone?” Jeth mentioned.

GNU tr non funziona presumibilmente perché:

Attualmente tr supporta completamente solo caratteri a byte singolo.
Alla fine supporterà caratteri multibyte; quando lo fa, il -C opzione farà in modo che completi l'insieme di caratteri, mentre -c lo farà integrare l'insieme di valori. Questa distinzione
avrà importanza solo quando alcuni valori non sono caratteri, e ciò è possibile
solo nelle impostazioni locali che utilizzano codifiche multibyte quando l'input contiene
errori di codifica.

E è un carattere multibyte:

$ echo -n \' | wc -c
1
$ echo -n ’ | wc -c  
3

Ubuntu
  1. Diversi modi di aggiornare Ubuntu 20.04 / 18.04

  2. Diversi modi per installare software su Ubuntu Linux

  3. Controlla la versione di Ubuntu usando metodi diversi

  4. Installare una versione diversa di un pacchetto?

  5. Come convertire una striscia PNG in una gif?

Telnet vs. SSH:in che cosa SSH è diverso da Telnet?

Come convertire le immagini in formato ASCII in Linux

Come convertire una directory in una partizione in Linux

8 modi diversi per conoscere la versione del sistema operativo Linux

Come convertire PDF in immagini usando Gimp

Come convertire file in formati diversi senza utilizzare software