Agregar espacio entre rutas de archivos

Agregar espacio entre rutas de archivos

Tengo una lista de carpetas y dentro de cada carpeta tengo el archivo "file.txt" que tiene el mismo nombre en todas las carpetas. Quería recopilar la ruta de este archivo de todas las carpetas y guardarla en un archivo de texto. Para hacerlo, ejecuté el siguiente comando en la carpeta principal:

find $PWD -type f -name "file.txt" > paths.txt

Este comando almacenó todas las rutas a este archivo desde todas las carpetas, en el archivo "path.txt" de la siguiente manera:

a/b/c/1/file.txt
a/b/c/2/file.txt
a/b/c/3/file.txt
a/b/c/4/file.txt
a/b/c/5/file.txt
a/b/c/6/file.txt
a/b/c/7/file.txt
.
.
.
.

¿Cómo puedo crear espacio entre las líneas en el archivo "path.txt" para que se muestre de la siguiente manera?

/a/b/c/1/file.txt /a/b/c/2/file.txt /a/b/c/3/file.txt /a/b/c/4/file.txt /a/b/c/5/file.txt /a/b/c/6/file.txt /a/b/c/7/file.txt ...

Respuesta1

Una forma más, asumiendo GNU find(1), sólo por diversión:

find $PWD -type f -name "file.txt" -printf '%p '

Respuesta2

Puede reemplazar el carácter LF con un espacio usando el comando 'tr'

tr '\012' ' ' < path.txt

Esto puede ser parte del comando original:

find $PWD -type f -name "file.txt" | tr '\012' ' ' > paths.txt

Respuesta3

Una forma sencilla sería canalizar la findsalida xargs(cuya acción predeterminada cuando no se da un comando explícito es repetir sus argumentos)

find $PWD -type f -name "file.txt" | xargs > paths.txt

A diferencia de simplemente reemplazar todas las nuevas líneas con espacios, esto preserva la nueva línea final.

Respuesta4

pasteTambién puedes usar

find . -type f -name "path.txt" -exec paste -d' ' -s {} \; > path.txt

información relacionada