5

I am attempting to use SED for the first time. To complicate matters, I am using it in Windows. I downloaded from this source. Since I don't have installation privileges on my work machine, I created a folder in my profile for executables and added it to my PATH.

I am having issues trying to use SED for the first time. It keeps failing with the error:

sed: -e expression #1, char 1: unknown command: `''

I have tried a few different samples from this how to, but I just can't get it. I found noone else is having this problem. What should I try? I have tried encapsulating it in quotes, double quotes, and back-quotes. Nothing seems to help.

Worthwelle
  • 4,816
TheSavo
  • 442

3 Answers3

6

Unlike the Unixes, the Windows command-line shell does not perform any word-splitting and does not strip away the quotes; the program just receives a single string containing the entire command line. This means that not all programs can follow the same quoting rules.

In this case, the GnuWin32 version of sed only supports one quoting style – " double quotes ". For example, in my tests the following works fine:

sed "s/foo/bar/"

You can also get sed from Cygwin, along with a more-complete Unix-like system: shells, editors, other tools. It will be easier if you use a Unix shell for learning, to avoid such syntax issues in the future.

Rich Homolka
  • 32,350
grawity
  • 501,077
4
C:\>sed sdf
sed: -e expression #1, char 3: Unterminated `s' command

C:\>echo aaa > f
C:\>sed -e "s/a/x/" < f
xaa

This is using sed from unxutils

2

Appreciate this is an old question however if you have Git Bash installed you can use a lot of unix features (sed /ssh / scp/ grep) in a Windows environment.

rup
  • 121