I have variable which has value \"abcd.txt\".
\"abcd.txt\"
I want to store everything before the \".txt\" in a second variable, replacing the \".t
\".txt\"
\".t
The simplest way is
logfile="${a/\.txt/\.log}"
If it should be allowed that the filename in $a has more than one occurrence of .txt in it, use the following solution. Its more safe. It only changes the last occurrence of .txt
$a
.txt
logfile="${a%%\.txt}.log"