The name of our translation service is Lingua Franca , however some of the files mistakenly spell it as Lingua-Franca . Replace the string ‘Lingua-Franca’ with ‘Lingua Franca’ in all occurrences in all the .txt files.
Check your work using this command, confirming that there are 0 occurrences of Lingua-Franca across all text files:
grep -Rl ‘Lingua-Franca’ /.txt | wc -l
Use the sed command with the -i option. For example, to replace the typo “hellw” with “hello” in a text file called hello_world.txt , you would use the following command:
sed -i ‘s/hellw/hello/g’ hello_world.txt
When I typed the: sed -i ‘s/Lingua-Franca/Lingua Franca/g’ /.txt the terminal show me an error (see the photo)
Hi. Same problem with MacBook Air. Copy and pasted your solution (which I’ve never seen before and would never have known to code this way otherwise). So, how were we supposed to know to add the double quotes (“”) and to take out the g for global after Lingua Franca/??!
The reason for this if anyone is confused (as I was and had to look it up)
The code academy course is using ‘GNU Bash’ which is the original Bash platform. Mac OS does not use GNU as its Unix platform, it instead uses FreeBSD. There are subtle differences between the two - annoyingly small differences like this one where the ‘sed’ command behaves differently.
The reason @mars_only 's solution works here sed -i "" 's/Lingua-Franca/Lingua Franca/' */*.txt is because the -i argument in FreeBSD sed needs to have a suffix provided to it. This is so that you can save a new version of the file with a different suffix if you wish. If you do not wish to do this and simply want to overwrite the file you can provide an empty string as the suffix which is what is being done here (-i “”). As for the -g I would leave this in personally as it acts in the same way and will replace the thing globally instead of just doing the first instance it finds in the file (it works here without because the language files all only mentioned ‘Lingua-Franca’ once anyway)
More of the differences between the two types of sed can be found here
I would strongly suggest bookmarking this page in case there’s any other issues like this in the rest of the course.
Unless it just got stripped when you were copying and pasting or writing over or whatever, what you’re doing with /.txt is basically just pointing towards a hidden directory “.txt”. If you want to use the wildcards you need to use asterisks (*), if you use those in your command everything looks like it should work just fine.