Como extrair o nome do arquivo e extensão no script de shell
- 4066
- 1224
- Mr. Mitchell Hansen
Para extrair o nome do arquivo e a extensão de um caminho de arquivo em um script de shell, você pode usar o 'nome de base' comando.
Aqui está um exemplo de como você pode usar nome de base Para extrair o nome do arquivo e extensão De um determinado caminho de arquivo:
#!/usr/bin/Env Bash # Defina um caminho de arquivo filepath = "/var/log/Mail.Log " # Extraia o nome do arquivo e a extensão do arquivo de arquivo de arquivo = $ (nome da base" $ filepath ") # Extraia a extensão da extensão do caminho do arquivo =" $ FileName ##*. " # Extraia o nome do arquivo sem o nome da extensão =" $ FileName%.* "12345678910111213 | #!/usr/bin/Env Bash # Definir um arquivo pathfilepath = "/var/log/Mail.Log " # Extrair o nome do arquivo e extensão do arquivo PathFileName = $ (nome da base" $ filepath ") # Extrair a extensão do arquivo pathextension =" $ FileName ##*. " # Extraia o nome do arquivo sem o ExtensionFileName =" $ FileName%.* " |
Neste exemplo, '$ filepath'É o caminho do arquivo que você deseja extrair o nome do arquivo e a extensão. O nome de base O comando extrai o nome do arquivo e extensão do caminho do arquivo e o armazena no nome do arquivo variável.
O extensão A variável é então definida como a string após o último . personagem na variável de nome do arquivo, usando o ## Operador de expansão de parâmetros.
O nome do arquivo A variável é então definida como a string antes do último . personagem no nome do arquivo variável, usando o %
Operador de expansão de parâmetros.
Isso irá extrair o nome do arquivo e extensão a partir do caminho do arquivo e armazená -los no nome do arquivo e variáveis de extensão, respectivamente.
Você pode usar essas variáveis em seu script conforme necessário. Por exemplo, você pode usar o nome do arquivo e extensão variáveis para verificar o tipo de arquivo ou renomeá -lo.
1. Obtenha o nome do arquivo sem caminho
Primeiro, remova o caminho completo do arquivo do nome do arquivo de entrada. Por exemplo, se a entrada do nome do arquivo for como “/Var/log/e -mail.registro" Em seguida, extraia o nome completo do arquivo correspondência.registro apenas.
#!/usr/bin/Env Bash filepath = "/var/log/Mail.log "nome do arquivo = $ (nome da base" $ filepath ") eco" nome completo do arquivo: $ filename "123456 | #!/usr/bin/Env Bash filepath = "/var/log/Mail.log "nome do arquivo = $ (nome da base" $ filepath ") eco" nome completo do arquivo: $ filename " |
A saída será:
Nome do arquivo completo: e -mail.registro
2. Nome do arquivo sem extensão
Agora extraia o nome do arquivo sem uma extensão do nome completo extraído do arquivo sem um caminho como acima.
#!/usr/bin/Env Bash filepath = "/var/log/Mail.log "nome do arquivo = $ (nome da base" $ filepath ") nome do arquivo =" $ FileName%.* "Echo" o nome do arquivo é: $ FILENAME "123456 | #!/usr/bin/Env Bash filepath = "/var/log/Mail.log "nome do arquivo = $ (nome da base" $ filepath ") nome do arquivo =" $ FileName%.* "Echo" o nome do arquivo é: $ FILENAME " |
A saída será:
O nome do arquivo é: Mail
3. Obtenha apenas extensão
Agora extraia a extensão do arquivo sem nome do nome completo extraído do arquivo sem caminho.
#!/usr/bin/Env Bash filepath = "/var/log/Mail.log "nome do arquivo = $ (nome da base" $ filepath ") extension =" $ nome do arquivo ##*. "Echo" Extensão: $ extensão "1234567 | #!/usr/bin/Env Bash filepath = "/var/log/Mail.log "nome do arquivo = $ (nome da base" $ filepath ") extension =" $ nome do arquivo ##*. "Echo" Extensão: $ extensão " |
A saída será:
Extensão: log
4. Extrair caminho do diretório
Você também pode usar o 'Dirname' comando para extrair o caminho do diretório do caminho completo do arquivo. Por exemplo:
#!/usr/bin/Env Bash filepath = "/var/log/Mail.log "dir = $ (dirname" $ filepath ") eco" diretório: $ dir "123456 | #!/usr/bin/Env Bash filepath = "/var/log/Mail.log "dir = $ (dirname" $ filepath ") eco" diretório: $ dir " |
A saída será:
Diretório:/var/log/
Conclusão
Este guia de instruções rápido ajuda você a entender como extrair um nome de arquivo e extensão do caminho do arquivo. Lembre -se de que esses comandos só funcionam com a casca de bash. Se você estiver usando um shell diferente, pode ser necessário usar uma sintaxe diferente.