GNU/Linux >> Tutoriales Linux >  >> Linux

Reemplace las comillas tipográficas con el comando sed de Linux

En tipografía, un par de comillas se orientaban tradicionalmente una hacia la otra. Se ven así:

"comillas tipográficas"

A medida que las computadoras se hicieron populares a mediados del siglo XX, la orientación a menudo se abandonó. El conjunto de caracteres original de las computadoras no tenía mucho espacio de sobra, por lo que tiene sentido que dos comillas dobles y dos comillas simples se redujeran a solo una de cada una en la especificación ASCII. En estos días, el conjunto de caracteres común es Unicode, con mucho espacio para muchas comillas y apóstrofes elegantes, pero muchas personas se han acostumbrado al minimalismo de un solo carácter tanto para las comillas de apertura como para las de cierre. Además de eso, las computadoras en realidad ven los diferentes tipos de comillas y apóstrofes como caracteres distintos. En otras palabras, para un coputer las comillas dobles derechas son diferentes de las comillas dobles izquierdas o de las comillas rectas.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Reemplazar comillas tipográficas con sed

Las computadoras no son máquinas de escribir. Cuando presiona una tecla en su teclado, no está presionando una palanca con un sello de tinta adjunto. Simplemente está presionando un botón que envía una señal a su computadora, que la computadora interpreta como una solicitud para mostrar un carácter predefinido específico. La solicitud depende de su mapa de teclado. Como mecanógrafo de Dvorak, he sido testigo de la confusión en los rostros de las personas cuando descubren que "asdf" en mi teclado produce "aoeu" en la pantalla. También puede haber presionado combinaciones especiales de teclas para producir caracteres, como ™ o ß o ≠, que ni siquiera están impresos en su teclado.

Cada letra o carácter, ya sea que esté impreso en su teclado o no, tiene un código. La codificación de caracteres se puede expresar de diferentes maneras, pero para una computadora, las secuencias Unicode u2018 y u2019 producen y , mientras que los códigos u201c y u201d producen el y caracteres. Conocer estos códigos "secretos" significa que puede reemplazarlos mediante programación usando un comando como sed. Cualquier versión de sed funcionará, por lo que puede usar GNU sed o BSD sed o incluso Busybox sed.

Aquí está el script de shell simple que uso:

#!/bin/sh
# GNU All-Permissive License

SDQUO=$(echo -ne '\u2018\u2019')
RDQUO=$(echo -ne '\u201C\u201D')
$SED -i -e "s/[$SDQUO]/\'/g" -e "s/[$RDQUO]/\"/g" "${1}"

Guarde este script como fixquotes.sh y luego cree un archivo de prueba separado que contenga comillas tipográficas:

‘Single quote’
“Double quote”

Ejecute el script y luego use el comando cat para ver los resultados:

$ sh ./fixquotes.sh test.txt
$ cat test.txt
'Single quote'
"Double quote"

Instalar sed

Si está utilizando Linux, BSD o macOS, entonces ya tiene GNU o BSD sed instalado. Estas son dos reimplementaciones únicas del original sed comando, y para la secuencia de comandos de este artículo son funcionalmente iguales (aunque eso no es cierto para todas las secuencias de comandos).

En Windows, puede instalar GNU sed con Chocolatey.


Linux
  1. Programación de tareas con el comando cron de Linux

  2. Diagnosticar problemas de conectividad con el comando ping de Linux

  3. Verifique el estado del archivo en Linux con el comando stat

  4. Programar una tarea con Linux al mando

  5. Domina el comando ls de Linux

Comando sed de Linux:cómo usar el editor de secuencias

Comando wc Linux con ejemplos

Cómo encontrar archivos en Linux con el comando Buscar

Cómo encontrar archivos con el comando fd en Linux

Los 50 Ejemplos Prácticos del Comando SED en Linux

Uso del comando sed de Linux con ejemplos