Following sed command is not working on my lion mac.
find . -type f -exec sed -i 's/user_dashboard/user/g' {} \;
I am getting this error
sed: 1: "./vendor/assets/javascr ...": invalid command code .
The OSX version of sed
is not the same as those found in most Linux systems.
It extends the -i
option to give you the opportunity save a file with a different extension, but requires input for that extension.
If you just want to overwrite the file in place, you need to use sed -i "" ...sedCmd.... fileName
to rename your file in-place.
Per @JamesMcMahon 's comment, see here for the full doc for OSX/BSD sed.
I hope this helps.
-i
probably has a different meaning (not "in-place") in your version of sed. Try using gsed
if available or replacing -i
with -e
and using a temporary file (and a mv
afterwards) to emulate it.
replacing text inside a file on the fly with sed on mac is possible,
the command is just a little different.
with: -i
, you have to specify a postfix, which sed will use to save the original file after it modified it.
run the command as:
$ sed -i _backup -E 's/foo/bar/' /tmp/jestinkt.txt
ending with both the modified /tmp/jestinkt.txt and the original /tmp/jestinkt.txt_backup
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With