Multiple replacements with one sed command

后端 未结 2 610
野的像风
野的像风 2020-12-16 10:07

I\'m wondering how I can do a multiple find/replace using a single sed statment in Mac OSX. I\'m able to do this in Ubuntu but becau

相关标签:
2条回答
  • 2020-12-16 10:42

    It should be also possible to combine sed commands using semicolon ;:

    find . -type f -exec sed -i '' -e "s/Red/$color1/g; s/Blue/$color2/g" {} \;
    

    I was wondering how portable this is and found through this Stackoverflow answer a link to the POSIX specification of sed. Especially if you have a lot of sed commands to run, this seems less cluttered to me than writing multiple sed expressions.

    0 讨论(0)
  • 2020-12-16 10:54

    Apple's man page says Multiple commands may be specified by using the -e or -f options. So I'd say

    find . -type f -exec sed -i '' -e s/Red/$color1/g -e s/Blue/$color2/g {} \;
    

    This certainly works in Linux and other Unices.

    0 讨论(0)
提交回复
热议问题