¿Cómo eliminar todas las líneas del archivo de texto que contiene las palabras "gato" y "rata"?
command-line
text-processing
PersonX
fuente
fuente

Respuestas:
grepacercarse a, aproximarsePara crear una copia del archivo sin líneas que coincidan con "cat" o "rat", se puede usar
grepen reversa (-v) y con la opción de palabra completa (-w).La opción de palabra completa se asegura de que no coincida
catso,gratefulpor ejemplo. La redirección de salida de su shell se usa (>) para escribirla en un nuevo archivo. Necesitamos la-Eopción para habilitar las expresiones regulares extendidas para la(one|other)sintaxis.sedacercarse a, aproximarseAlternativamente, para eliminar las líneas en el lugar, se puede usar
sed -i:Los
\bconjuntos de palabras fronteras y ladoperación borra la línea que coincida con la expresión entre las barras diagonales.catyratambos están siendo emparejados por la(one|other)sintaxis que aparentemente necesitamos escapar con barras invertidas.Consejo: use
sedsin el-ioperador para probar la salida del comando antes de sobrescribir el archivo.(Basado en Sed - Eliminar una línea que contiene una cadena específica )
fuente
Para probar solo en la terminal, use:
Para eliminar realmente esas líneas del archivo, use:
fuente
Prueba el vim-way:
fuente
Considere si tiene un archivo
file_namey desea buscar el mouse, pero al mismo tiempo pocas filas del mouse tienen otras palabras comocatyraty no desea verlas en su salida, por lo que la única forma de hacerlo es:fuente
forma de concha portátil
Funciona en
/bin/sh, que estádashen Ubuntu, así comoksh, ybash. Ligeramente incómodo que tenga que escribir múltiples casos de prueba para cada palabra en unacasedeclaración pero portátil. Funciona con casos donde la palabra aparece sola en la línea, al principio, al final de la línea o en el medio de la línea, e ignora dónde podría ser parte de otra palabra.Y así es como funciona:
fuente