sed throws 'bad flag in substitute command'

后端 未结 3 927
闹比i
闹比i 2020-12-14 05:34

I want to run a simple command of replacing absolute paths to relative ones inside a CSS file like this:

sed -i \'s/\\/fonts/../fonts/\' /Users/sergeybasharo         


        
3条回答
  •  孤城傲影
    2020-12-14 06:37

    In your command s/\/fonts/../fonts/ is being taken as the parameter to the -i option (the suffix to use for the backup file), and the filename argument is being treated as the editing commands.

    You need to specify to disable the backup file creation:

    sed -i '' ...
    

    In your example:

    sed -i '' 's/\/fonts/../fonts/' /Users/sergeybasharov/WebstormProjects/snap/compiled/Content/stylesheets/style.css
    

    Computers are dumb, they don't figure things out by context, so they can't tell that something beginning with s/ is obviously an editing command, not a suffix.

提交回复
热议问题