Eliminar una determinada palabra en un archivo

Eliminar una determinada palabra en un archivo

¿Cómo elimino solo abcd11.gmail.comy *test1:de la línea 1 y abcd14.gmail.comde *fortest2:la línea 2 y abcd19.gmail.comde *asatesteg:la línea 2 desde abajo dejando el resto como está? Tengo miles de líneas en un archivo como este:

May 23 03:44:02 abcd11.gmail.com x.x.x.x.x: *test1: May 23 04:46:21.032: #TEST1_ENTRY:4105 THIS is a test1    
May 23 03:44:02 abcd14.gmail.com x.x.x.x.x: *fortest2: May 23 04:46:21.032: #TEST2_ENTRY:4105 THIS is a test2 
May 23 03:44:02 abcd19.gmail.com x.x.x.x.x: *asatesteg: May 23 04:46:21.032: #TESTEG_ENTRY:4105 THIS is a testeg 

Respuesta1

Puedes intentar sedla sustitución.

$ sed -e 's/abcd[0-9]*//g' -e 's/*test[0-9]*://g' file

Donde abcd[0-9]*coincide con cada abcdseguido de un número, lo mismo con*test[0-9]*:

Respuesta2

Una solución usando corte:

cat $FILE | cut -d' ' -f4,6 --complement

Respuesta3

Si necesitas eliminar siempre la misma frase, puedes intentarlo.

sed -e 's/abcd[0-9]*//g' -e 's/*test[0-9]*://g' file.ext

esto le muestra el resultado en la salida estándar. Si desea guardar este resultado, simplemente agregue el >al final de la instrucción o >>agregue el contenido a otro archivo.

sed -e 's/abcd[0-9]*//g' -e 's/*test[0-9]*://g' file.ext>new_file.ext
sed -e 's/abcd[0-9]*//g' -e 's/*test[0-9]*://g' file.ext>>new_file.ext

luego puede eliminar el archivo antiguo y reemplazarlo con el nuevo

rm file.ext
mv new_file.ext file.ext

información relacionada