Bash é um poderoso shell de linha de comando comumente usado em sistemas operacionais Linux e Unix. Uma tarefa comum ao trabalhar com arquivos no Bash é extrair o nome do arquivo e a extensão de um caminho de arquivo. Este artigo discutirá como extrair o nome do arquivo e a extensão no Bash e fornecerá exemplos de como usar esses valores em seus scripts.
Extraindo o nome do arquivo e a extensão no Bash
Existem várias maneiras de extrair o nome do arquivo e a extensão no Bash, aqui estão três métodos comuns:
- Usando o Comando Basename
- Usando a Expansão de Parâmetros
- Usando a Variável IFS (Internal Field Separator)
1: Usando o Comando Basename
O nome base O comando retorna o nome do arquivo de um caminho de arquivo e extrai o nome do arquivo e a extensão. Você pode usar o nome base comando com o -sufixo opção, que remove o sufixo especificado do nome do arquivo como no código abaixo:
#!/bin/bash
# Exemplo de caminho de arquivo
caminho de arquivo = '/caminho/para/arquivo.txt'
# Extrai o nome do arquivo
nome do arquivo =$ ( nome base $file_path )
# Extrair extensão
extensão = ' ${filename##*.} '
eco 'Nome do arquivo: $arquivo '
eco 'Extensão: $extensão '
2: Usando a Expansão de Parâmetros
O expansão de parâmetro A sintaxe é um recurso poderoso do Bash que permite manipular strings. Para extrair o nome do arquivo e a extensão usando a expansão de parâmetros, você pode usar o ${parâmetro##palavra} sintaxe, que remove a correspondência mais longa do padrão especificado desde o início do parâmetro como no código abaixo:
#!/bin/bash# Exemplo de caminho de arquivo
caminho de arquivo = '/caminho/para/arquivo.txt'
# Extrai o nome do arquivo
nome do arquivo = ' ${file_path##*/} '
# Extrair extensão
extensão = ' ${filename##*.} '
eco 'Nome do arquivo: $arquivo '
eco 'Extensão: $extensão '
3: Usando a Variável IFS (Internal Field Separator)
O Variável IFS é usado pelo Bash para dividir strings em campos, definindo o Variável IFS ao separador de caminho (“/”). Você pode extrair o nome do arquivo e a extensão de um caminho de arquivo por meio dessa variável usando o código abaixo:
#!/bin/bash# Exemplo de caminho de arquivo
caminho de arquivo = '/caminho/para/arquivo.txt'
# Defina IFS como '/'
IFS = '/' ler -r -a peças <<< ' $file_path '
# Extrai o nome do arquivo
nome do arquivo = ' ${partes[-1]} '
# Extrair extensão
extensão = ' ${filename##*.} '
eco 'Nome do arquivo: $arquivo '
eco 'Extensão: $extensão '
Conclusão
Extrair o nome do arquivo e a extensão de um caminho de arquivo é uma tarefa comum ao trabalhar com arquivos no Bash. Este artigo discutiu três métodos comuns para extrair o nome do arquivo e a extensão no Bash. Usando o nome base comando, o expansão de parâmetro sintaxe, ou o Variável IFS , você pode extrair rápida e facilmente os valores de nome de arquivo e extensão de um caminho de arquivo.