Así que no hay directorios ni archivos ocultos. Sólo los archivos. Enumerar solo archivos se puede hacer con la línea de la siguiente manera.
ls -p | grep -v /
Ahora quiero que el resultado de esta línea esté separado por comas.
Respuesta1
Puedes utilizar tr
para ese trabajo.
ls -p | grep -v / | tr '\n' ','
Respuesta2
Puedes usar el ls -m
comando GNU. Imprimirá todos los archivos y directorios separados por comas.
Respuesta3
La solución propuesta por Thomas funciona, pero agrega una coma al último elemento (que puede no ser lo que desea) y elimina los espacios después de las comas. La siguiente alternativa conserva los espacios después de las comas y no agrega una coma después del último elemento:
ls -1p | grep -v / | xargs echo | sed 's/ /, /g'
Por supuesto, si desea deshacerse de los espacios entre los elementos, simplemente modifique la expresión sed:
ls -1p | grep -v / | xargs echo | sed 's/ /,/g'
(Nota para los espectadores que usan una fuente en la que una 'l' minúscula y el número '1' (uno) tienen el mismo aspecto: la primera opción que se pasa ls
es 1
el número, no minúsculas l
).
Como señaló Jim L en un comentario, los comandos anteriores solo funcionan para nombres de archivos que no contienen espacios. Los siguientes comandos solucionan esto:
ls -1p | grep -v / | sed 's/$/, /g' | xargs echo | sed 's/,$//g'
Esto reemplaza los finales de línea con una coma antes de pasar la lista a echo
; la última parte elimina el comando al final de la lista.