Jak wyodrębnić nazwę pliku i rozszerzenie w skrypcie powłoki
- 1550
- 363
- Natan Cholewa
Aby wyodrębnić nazwę pliku i rozszerzenie ze ścieżki pliku w skrypcie powłoki, możesz użyć „Basename” Komenda.
Oto przykład tego, jak możesz użyć Basename wyodrębnić Nazwa pliku I rozszerzenie Z danej ścieżki pliku:
#!/usr/bin/env bash # Zdefiniuj ścieżkę pliku filePath = "/var/log/maila.Log " # Wyodrębnij nazwę pliku i rozszerzenie z pliku nazwa ścieżki pliku = $ (podstawa„ $ filepath ") # wyodrębnij rozszerzenie z PLIK PATH Extension =" $ nazwa pliku ##*. " # Wyodrębnij nazwę pliku bez rozszerzenia nazwy pliku =" $ nazwa pliku%.* ”12345678910111213 | #!/usr/bin/env bash # Zdefiniuj pliku pathFilePath = "/var/log/maila.Log " # Wyodrębnij nazwę pliku i rozszerzenie z pliku ścieżka PathFileName = $ (Basename" $ filepath ") # wyodrębnij rozszerzenie z pliku pathoxtension =" $ nazwa pliku ##*. " # Wyodrębnij nazwę pliku bez extensionFileName =" $ nazwa pliku%.* ” |
W tym przykładzie ”$ FilePath„to ścieżka pliku, z której chcesz wyodrębnić nazwę pliku i rozszerzenie. Basename Polecenie wyodrębnia Nazwa pliku I rozszerzenie ze ścieżki pliku i przechowuje ją w Nazwa pliku zmienny.
rozszerzenie Zmienna jest następnie ustawiona na ciąg po ostatnim . znak w zmiennej nazwy pliku, za pomocą ## Operator rozszerzenia parametrów.
Nazwa pliku Zmienna jest następnie ustawiona na ciąg przed ostatnim . postać w Nazwa pliku zmienna za pomocą %
Operator rozszerzenia parametrów.
To wyodrębni Nazwa pliku I rozszerzenie ze ścieżki pliku i przechowuj je odpowiednio w nazwie pliku i rozszerzenia.
Następnie możesz użyć tych zmiennych w skrypcie w razie potrzeby. Na przykład możesz użyć Nazwa pliku I rozszerzenie zmienne do sprawdzenia typu pliku lub zmiany nazwy.
1. Zdobądź nazwę pliku bez ścieżki
Najpierw usuń pełną ścieżkę pliku z nazwy pliku wejściowego. Na przykład, jeśli wejście nazwy pliku jest jako „/Var/log/poczta.dziennik" Następnie wyodrębnij pełną nazwę pliku Poczta.dziennik tylko.
#!/usr/bin/env bash filepath = "/var/log/e -mail.log „fileName = $ (nazwa bazy„ $ filePath ”) echo„ Pełna nazwa pliku: $ nazwa pliku ”123456 | #!/usr/bin/env bash filepath = "/var/log/e -mail.log „fileName = $ (nazwa bazy„ $ filePath ”) echo„ Pełna nazwa pliku: $ nazwa pliku ” |
Wyjście będzie:
Pełna nazwa pliku: poczta.dziennik
2. Nazwa pliku bez rozszerzenia
Teraz wyodrębnij nazwę pliku bez przedłużenia z wyodrębnionej pełnej nazwy pliku bez ścieżki jak powyżej.
#!/usr/bin/env bash filepath = "/var/log/e -mail.log "filename = $ (basename" $ filePath ") filename =" $ fileName%.* nazwa pliku „echo” to: $ nazwa pliku ”123456 | #!/usr/bin/env bash filepath = "/var/log/e -mail.log "filename = $ (basename" $ filePath ") filename =" $ fileName%.* nazwa pliku „echo” to: $ nazwa pliku ” |
Wyjście będzie:
Nazwa pliku to: poczta
3. Uzyskaj tylko rozszerzenie
Teraz wyodrębnij rozszerzenie pliku bez nazwy z wyodrębnionej pełnej nazwy pliku bez ścieżki.
#!/usr/bin/env bash filepath = "/var/log/e -mail.log "filename = $ (basename" $ filePath ") rozszerzenie =" $ nazwa pliku ##*. rozszerzenie „echo”: $ rozszerzenie ”1234567 | #!/usr/bin/env bash filepath = "/var/log/e -mail.log "filename = $ (basename" $ filePath ") rozszerzenie =" $ nazwa pliku ##*. rozszerzenie „echo”: $ rozszerzenie ” |
Wyjście będzie:
Rozszerzenie: log
4. Wyodrębnia ścieżka katalogu
Możesz także użyć „Dirname” polecenie wyodrębnienia ścieżki katalogu z pełnej ścieżki pliku. Na przykład:
#!/usr/bin/env bash filepath = "/var/log/e -mail.log "dir = $ (dirname" $ filepath ") echo" Directory: $ dir "123456 | #!/usr/bin/env bash filepath = "/var/log/e -mail.log "dir = $ (dirname" $ filepath ") echo" Directory: $ dir " |
Wyjście będzie:
Katalog:/var/log/
Wniosek
Ten szybki instruktaż pomaga zrozumieć, jak wyodrębnić nazwę pliku i rozszerzenie ze ścieżki pliku. Należy pamiętać, że te polecenia działają tylko ze skorupą bash. Jeśli używasz innej powłoki, może być konieczne użycie innej składni.