Como extrair o arquivo de base sem caminho e extensão em bash

Como extrair o arquivo de base sem caminho e extensão em bash
O comando Basename é comumente usado em Bash para recuperar o nome base de um arquivo ou diretório de um determinado caminho, removendo qualquer componente de diretório líder. Este artigo explorará como extrair o nome base de um arquivo sem seu caminho e extensão usando o Bash.

Extrair o nome de arquivo sem caminho e extensão em bash

Para extrair o nome da base de um arquivo sem seu caminho e extensão, podemos usar o comando de nome de base em conjunto com o recurso de substituição de parâmetros de Bash. O comando Basename retorna o último componente de um nome de caminho, que no nosso caso seria o nome do arquivo com sua extensão. No entanto, ao especificar a opção de sufixo, podemos retirar a extensão do nome do arquivo, aqui está um exemplo de código Bash:

#!BIN/BASH
filepath =/home/aaliyan/bash3.sh
s = $ (nome de base $ filepath)
eco "$ s%.* "

O script Bash acima define uma variável chamada “caminho de arquivo”E atribui o caminho do arquivo“/Home/Aaliyan/Bash3.sh““. O script usa o comando Basename para extrair o nome base do arquivo do caminho do arquivo e atribui o resultado a uma variável chamada "s".

A segunda expansão do parâmetro remove a extensão do nome do arquivo, removendo a correspondência mais curta possível de qualquer número de caracteres seguidos por um ponto usando “%.*”. A string resultante, "Bash3", é impressa no console usando o comando echo:

Outra maneira de extrair o nome de base de um arquivo sem o caminho e a extensão do arquivo é usando a expansão dos parâmetros que está sem usar o comando Basename, abaixo é o exemplo do código Bash que usa o método de expansão de parâmetros para obter o nome da base de um arquivo sem arquivo Extensão de caminho e arquivo:

#!BIN/BASH
filepath =/home/aaliyan/bash3.sh
s = $ filepath ##*/
eco "$ s%.* "

Este é um script bash que define uma variável chamada "filepath" e atribui o valor "/Home/Aaliyan/Bash3.sh““. O script usa então o recurso de expansão do parâmetro de Bash duas vezes para extrair o nome de base do arquivo sem seu caminho e extensão. Especificamente, a primeira expansão de parâmetro remove o caminho do nome do arquivo, removendo a correspondência mais longa possível de qualquer número de caracteres seguidos de uma barra para a frente usando "##/".

A string resultante, “Bash3.sh”É então atribuído a uma variável chamada“ S ”. A segunda expansão do parâmetro remove a extensão do nome do arquivo, removendo a correspondência mais curta possível de qualquer número de caracteres seguidos por um ponto usando “%.”. A string resultante, "Bash3", é impressa no console usando o comando echo:

Conclusão

Extrair o nome da base de um arquivo sem seu caminho e extensão é uma tarefa comum no script de bash. Ao usar o comando de nome da base em combinação com a substituição de parâmetros e os recursos de expansão de parâmetros do Bash, podemos facilmente alcançar esta tarefa. Isso pode ser útil ao trabalhar com nomes de arquivos em scripts, por exemplo, ao renomear arquivos ou executar operações em arquivos com nomes semelhantes.