Script para eliminar caracteres específicos en un archivo
Publicado: 03 Oct 2024, 11:09
El siguiente código que adjunto es un script de bash que elimina los caracteres y patrones que especifiquemos en el mismo y guarda el archivo resultante en el mismo directorio añadiendo antes de la extensión del archivo .modificado. En mi caso, he elegido eliminar los caracteres **, *** y ###.
He llamado al script elimina_caracteres.sh y le he dado permisos de ejecución. Como argumento le he pasado un archivo denominado script_borrar_caracteres_explicacion.txt:
Aquí va el contenido del script::
Explicación del Script
- `sed -e 's/\**//g'`: Elimina todos los 2 asteriscos (`**`).
- `-e 's/###//g'`: Elimina todas las ocurrencias de `###`.
- `-e 's/##//g'`: Elimina todas las ocurrencias de `##`.
- `"$archivo_original"`: Especifica el archivo de entrada.
- `> "$archivo_modificado"`: Redirige la salida a un nuevo archivo.
Cómo Usar el Script
1. Guarda el script en un archivo, por ejemplo, `elimina_caracteres.sh`.
2. Dale permisos de ejecución:
3. Ejecuta el script pasando el archivo que deseas modificar:
Resultado
El archivo de salida (`script_modificar_archivo.modificado.txt`) contendrá el mismo contenido que el archivo original, pero sin los caracteres y patrones que hemos especificado en el script.
He llamado al script elimina_caracteres.sh y le he dado permisos de ejecución. Como argumento le he pasado un archivo denominado script_borrar_caracteres_explicacion.txt:
Código: Seleccionar todo
guillermo@maquina:~$ ./elimina_caracteres.sh ~/Documentos/script_borrar_caracteres_explicacion.txtCódigo: Seleccionar todo
#!/bin/bash
# Verificar que se ha pasado un argumento
if [ "$#" -ne 1 ]; then
echo "Uso: $0 <ruta_del_archivo>"
exit 1
fi
# Obtener la ruta del archivo
archivo_original="$1"
# Verificar que el archivo existe
if [ ! -f "$archivo_original" ]; then
echo "El archivo '$archivo_original' no existe."
exit 1
fi
# Definir el nombre del nuevo archivo
archivo_modificado="${archivo_original%.txt}.modificado.txt"
# Usar sed para eliminar los caracteres y patrones especificados
sed -e 's/\*//g' -e 's/###//g' -e 's/##//g' "$archivo_original" > "$archivo_modificado"
# Confirmar que el archivo ha sido creado
echo "Archivo modificado creado: $archivo_modificado"
- `sed -e 's/\**//g'`: Elimina todos los 2 asteriscos (`**`).
- `-e 's/###//g'`: Elimina todas las ocurrencias de `###`.
- `-e 's/##//g'`: Elimina todas las ocurrencias de `##`.
- `"$archivo_original"`: Especifica el archivo de entrada.
- `> "$archivo_modificado"`: Redirige la salida a un nuevo archivo.
Cómo Usar el Script
1. Guarda el script en un archivo, por ejemplo, `elimina_caracteres.sh`.
2. Dale permisos de ejecución:
Código: Seleccionar todo
chmod +x elimina_caracteres.sh
Código: Seleccionar todo
./elimina_caracteres.sh script_modificar_archivo.txt
El archivo de salida (`script_modificar_archivo.modificado.txt`) contendrá el mismo contenido que el archivo original, pero sin los caracteres y patrones que hemos especificado en el script.