Come estrarre il basename dei file senza percorso ed estensione in bash

Come estrarre il basename dei file senza percorso ed estensione in bash
Il comando basename è comunemente usato in bash per recuperare il nome di base di un file o directory da un determinato percorso rimuovendo qualsiasi componente di directory leader. Questo articolo esplorerà come estrarre il nome di base di un file senza il suo percorso ed estensione usando Bash.

Estrai Basename di file senza percorso ed estensione in bash

Per estrarre il basename di un file senza il suo percorso ed estensione, possiamo usare il comando basename insieme alla funzione di sostituzione dei parametri di bash. Il comando Basename restituisce l'ultimo componente di un percorso, che nel nostro caso sarebbe il nome del file con la sua estensione. Tuttavia, specificando l'opzione suffisso, possiamo rimuovere l'estensione dal nome del file, ecco un esempio di Bash:

#!Bin/Bash
FilePath =/Home/Aaliyan/Bash3.sh
S = $ (Basename $ FilePath)
echo "$ s%.* "

Lo script bash sopra definisce una variabile chiamata "percorso del file"E gli assegna il percorso del file"/Home/Aaliyan/Bash3.sh". Lo script utilizza quindi il comando basename per estrarre il nome di base del file dal percorso del file e assegna il risultato a una variabile chiamata "S".

La seconda espansione dei parametri rimuove l'estensione dal nome del file rimuovendo la corrispondenza più breve possibile di qualsiasi numero di caratteri seguito da un punto usando "%.*". La stringa risultante, "Bash3", viene quindi stampata sulla console usando il comando Echo:

Un altro modo per estrarre il basename di un file senza il percorso del file e l'estensione è utilizzando l'espansione dei parametri senza utilizzare il comando basename, sotto è il codice bash di esempio che utilizza il metodo di espansione dei parametri per ottenere il basename di un file senza file percorso e estensione del file:

#!Bin/Bash
FilePath =/Home/Aaliyan/Bash3.sh
S = $ FilePath ##*/
echo "$ s%.* "

Questo è uno script bash che definisce una variabile chiamata "FilePath" e gli assegna il valore "/Home/Aaliyan/Bash3.sh". Lo script utilizza quindi la funzione di espansione dei parametri di Bash due volte per estrarre il basename del file senza il suo percorso e l'estensione. In particolare, la prima espansione dei parametri rimuove il percorso dal nome del file rimuovendo la corrispondenza più lunga possibile di qualsiasi numero di caratteri seguito da una barra in avanti usando "##/".

La stringa risultante, "Bash3.sh"Viene quindi assegnato a una variabile chiamata" S ". La seconda espansione dei parametri rimuove l'estensione dal nome del file rimuovendo la corrispondenza più breve possibile di qualsiasi numero di caratteri seguito da un punto usando "%.". La stringa risultante, "Bash3", viene quindi stampata sulla console usando il comando Echo:

Conclusione

L'estrazione del basename di un file senza il suo percorso ed estensione è un compito comune negli script bash. Usando il comando Basename in combinazione con la sostituzione dei parametri e le caratteristiche di espansione dei parametri di Bash, possiamo facilmente raggiungere questo compito. Ciò può essere utile quando si lavora con i nomi di file negli script, ad esempio, quando si rinominano i file o si eseguono operazioni su file con nomi simili.