es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Script de Bash para eliminar algunas palabras clave en un archivo de texto (txt).

No estoy familiarizado con el script de bash, después de investigar un poco, encontré algunas pistas, pero aún necesito tu ayuda.

Dado que tengo un archivo resources.txt, que contiene:

a
b
c
d

y un archivo whitelist.txt, que contiene:

c
d

Me gustaría eliminar todos los elementos que coincidan exactamente con el archivo de lista blanca en el archivo de recursos.
Entonces, el resultado esperado es:

a
b

Se espera que c y d sean eliminados porque están en la lista blanca.

He creado el siguiente script para leerlo, pero no sé cómo reemplazar cada uno por uno en el archivo de recursos.


# leer el archivo de lista blanca echo whitelist.txt | awk '{for (i=1; i<=NF; i++) printf "%s\n",$i} # reemplazar el elemento en el archivo de recursos awk '{sub(/c/,""); print}' resources.txt

Tu ayuda es muy apreciada, ¡muchas gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para eliminar todos los elementos que coincidan exactamente del archivo de lista blanca al archivo de recursos, se puede utilizar el comando grep con la opción -v (inversión de coincidencia). Aquí hay un ejemplo:

    grep -v -F -f whitelist.txt resources.txt > new_resources.txt
    

    Explicación:
    – El comando grep busca patrones en archivos.
    – La opción -v invierte la coincidencia, es decir, muestra las líneas que no coinciden.
    – La opción -F trata los patrones como cadenas fijas, no como expresiones regulares.
    – La opción -f especifica un archivo con los patrones a buscar.
    whitelist.txt es el archivo que contiene los patrones a eliminar de resources.txt.
    resources.txt es el archivo del que se van a eliminar los patrones.
    new_resources.txt es el archivo de salida que contiene el resultado.

    Luego, se puede renombrar new_resources.txt a resources.txt si se desea reemplazar el archivo original.

    Tenga en cuenta que el orden de las opciones es importante. Debe colocar -v antes de -f y -F antes de -f.

    ¡Espero que esto sea de ayuda!

Comments are closed.