Buscar y reemplazar con Sed, no con un archivo normal

Buscar y reemplazar con Sed, no con un archivo normal

Estoy trabajando en un paquete anaconda portátil y estoy intentando usar find y sed para buscar todos los archivos y reemplazar una ruta dentro de los archivos dentro del directorio actual y sus subdirectorios.

Sin embargo, cuando ejecuto el comando, sed arroja el error:

sed: couldn't edit anaconda3: not a regular file

El comando que estoy usando es:

find ./ -type f -exec sed -i -e "s+/opt/conda_tools+$TOOLKIT_DIR+g" * {} \;

Estoy usando + como delimitador ya que / son parte de la ruta. El contenido del directorio en el que estoy ejecutando el script es:

drwxr-xr-x 24 test_user usuarios de linux 4096 21 de noviembre 16:07 anaconda3

La ejecución del comando de búsqueda por sí solo enumera los archivos como se esperaba, pero por alguna razón el nombre del directorio aún se selecciona. También probé la siguiente variación del comando sin éxito:

find ./ -type f -exec sed -i '' "s+/opt/conda_tools+$INSTALL_DIR+g" * {} \;

He usado find y sed con éxito antes, pero estoy un poco confundido sobre dónde buscar a continuación. ¿Hay algo obviamente incorrecto que me falta aquí o no tan obvio?

Respuesta1

Quitar el '*' de

find ./ -type f -exec sed -ie "s+/opt/conda_tools+$TOOLKIT_DIR+g" * {} \;

Entonces

find ./ -type f -exec sed -ie "s+/opt/conda_tools+$TOOLKIT_DIR+g" {} \;

información relacionada