I've been trying to remove all brackets in my filename(s). Can anyone help me create a bash script to do that?
This bash script below work flawlessly for non-bracket filename(s), but if there are any brackets, it will double the filename:
#!/bin/bash
for fname in *; do
name="${fname%\.*}"
extension="${fname#$name}"
newname="${name//[/}"
newfname="$newname""$extension"
if [ "$fname" != "$newfname" ]; then
#echo mv "$fname" "$newfname"
mv "$fname" "$newfname"
fi
done
Sample output:
$ touch [test]
$ ls
[test] rep.sh
$ bash rep.sh
$ ls
rep.sh test][test]
So it did remove the left bracket but it repeated the filename.