How to extract filename and extension separately in bash
This example will show you how to extract filename and extension separately in the bash.
Extracting file name without extension
fullfile="fun/ss/log.txt"
filename=$(basename -- "$fullfile")
filename="${filename%.*}"
echo $filename
# logIn the above code first, we have used basename command to get basename which looks like this log.txt on the next line, we have used %.* to get the file name without extension.
Extracting extension without filename
fullfile="fun/ss/log.txt"
filename=$(basename -- "$fullfile")
extension="${filename##*.}"
echo $extensionOutput:
.txtSecond way
You can also try the following syntax to get the filename without extension.
fullfile="fun/ss/log.txt"
filename=$(basename $fullfile .txt)
echo $filenameOutput:
log

