Actualmente se imprime /dir1/dir2/dir3/filename
Solo quiero que se imprima solo el filename
"sin" las rutas del directorio.
¿Alguna sugerencia?
Respuestas
1 para la respuesta № 1La pregunta es extremadamente vaga, pero suponiendo que tienes un comando Bash como
echo "$path"
Puedes imprimir solo el nombre del archivo con
echo "${path##*/}"
echo
puede hacer cosas inesperadas cuando se usa con cadenas variables, por lo que una mejor alternativa es
printf "%sn" "${path##*/}"
0 para la respuesta № 2
No entiendo realmente lo que estás tratando de hacer, pero
ls /path/to/files > /path/to/output
Digamos que tiene 3 archivos de texto individuales en el directorio, lo anterior combinará los 3 archivos de cada nombre de archivo en una línea sin la ruta real.
Espero que ayude
Alternativa de bash
for file in /path/to/files/*.txt; do
echo ${file##*/} >> /path/to/output/filename.txt
done
0 para la respuesta № 3
utilizar nombre base para eso asi
shortpath=$(pwd)
basename "$shortpath"
0 para la respuesta № 4
Pude lograr esto usando awk
| awk "{(n = split ($ 18, a," / ")); imprime $ 6, $ 10, $ 8, a [n]," n "}"> /sometextfile.txt
"n" era porque necesitaba una línea en blanco entre los resultados.