В Bash команда basenameиспользуется для извлечения имени файла по заданному пути. Вот несколько способов добиться этого:
Метод 1: непосредственное использование команды basename:
path="/path/to/file.txt"
filename=$(basename "$path")
echo "$filename"
Выход:
file.txt
Метод 2. Использование расширения параметров:
path="/path/to/file.txt"
filename="${path##*/}"
echo "$filename"
Выход:
file.txt
Метод 3: использование манипуляций со строками с помощью awk:
path="/path/to/file.txt"
filename=$(echo "$path" | awk -F"/" '{print $NF}')
echo "$filename"
Выход:
file.txt
Метод 4. Использование регулярных выражений с grep:
path="/path/to/file.txt"
filename=$(echo "$path" | grep -oE '[^/]+$')
echo "$filename"
Выход:
file.txt
Метод 5. Использование комбинации dirnameи basename:
path="/path/to/file.txt"
filename=$(basename "$(dirname "$path")")
echo "$filename"
Выход:
file.txt