用于窗口的 sed

The*_*avo 4 windows sed gnuwin32

我第一次尝试使用 SED。更复杂的是,我在 Windows 中使用它。我是从这个源下载的。由于我在工作机器上没有安装权限,因此我在我的配置文件中为可执行文件创建了一个文件夹并将其添加到我的PATH.

我第一次尝试使用 SED 时遇到问题。它不断失败并出现错误:

sed: -e expression #1, char 1: unknown command: `''
Run Code Online (Sandbox Code Playgroud)

我已经从这个 how to尝试了几个不同的样本,但我无法得到它。我发现没有其他人有这个问题。我应该尝试什么?我尝试将它封装在引号、双引号和反引号中。似乎没有任何帮助。

use*_*686 6

与 Unix 不同,Windows 命令行 shell 不执行任何分词,也不会去掉引号;程序只接收一个包含整个命令行的字符串。这意味着并非所有程序都可以遵循相同的引用规则。

在这种情况下,GnuWin32 版本的sed只支持一种引用样式——"双引号"。例如,在我的测试中,以下工作正常:

sed "s/foo/bar/"
Run Code Online (Sandbox Code Playgroud)

您还可以sedCygwin以及更完整的类 Unix 系统中获取:shell、编辑器和其他工具。如果您使用 Unix shell 进行学习会更容易,以避免将来出现此类语法问题。


Red*_*ick 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
Run Code Online (Sandbox Code Playgroud)

这是sedunxutils使用的