Your sample input and output are not coherent. Your sed expression cointains "bc01" even though none of the sample data contains "bc01". Assuming the "01" is an accident or something, the following will do what you describe, i.e. replace "bc" with "xy".
sed -i 's/bc/xy/g' file_list.log
The -i switch causes sed to perform the replacement in the file, i.e. replacing the file's contents with the new contents. If you have already run the failed command, it will have replaced the file with probably nothing at all, so you will need to run the grep again before you try the new script.
The -n option causes sed to remove any line which does not match; I'm guessing you don't want that. If you do, you'll need to add a /p option to the s/// command to print the lines which had substitutions made to them; otherwise, the output will be empty files (it will make the substitution but not write the result anywhere).