Attualmente stampa /dir1/dir2/dir3/filename
Voglio solo che stampi solo il filename
"senza" i percorsi di directory.
Eventuali suggerimenti?
risposte:
1 per risposta № 1La domanda è estremamente vaga, ma partendo dal presupposto che tu abbia un comando di Bash come
echo "$path"
puoi stampare solo il nome del file con
echo "${path##*/}"
echo
può fare cose inaspettate se usato con stringhe variabili, quindi è un'alternativa migliore
printf "%sn" "${path##*/}"
0 per risposta № 2
Non capisco davvero cosa stai cercando di fare ma
ls /path/to/files > /path/to/output
Supponiamo che tu abbia 3 singoli file di testo nella directory, il precedente combinerà tutti e 3 i file ogni nome di file su una riga senza il percorso effettivo.
spero che sia d'aiuto
Alternativa alternativa
for file in /path/to/files/*.txt; do
echo ${file##*/} >> /path/to/output/filename.txt
done
0 per risposta № 3
uso basename per quello come questo:
shortpath=$(pwd)
basename "$shortpath"
0 per risposta № 4
Sono stato in grado di farlo usando awk
| awk "{(n = split ($ 18, a," / ")); stampa $ 6, $ 10, $ 8, a [n]," n "}"> /sometextfile.txt
"n" era perché avevo bisogno di una linea vuota tra i risultati.