Você pode usar este comando:
for folder in $(ls); do
for file in $(ls $folder); do
sed -i 's/_b//' $folder/$file
done
mv $folder ${folder/_b/}
done
- O primeiro loop está navegando em diretórios.
-
O segundo loop está editando o conteúdo dos arquivos localizados nas pastas.
Depois de deixar o segundo loop, o primeiro é renomear as pastas.
Outra maneira de lidar com espaços em nomes de arquivos que seriam interpretados como IFS:
ls | while read folder ; do
ls "$folder" | while read file; do
sed -i 's/_b//' "$folder/$file"
done
mv "$folder" "${folder/_b/}"
done