C:\crp\cnp>sed -V
GNU sed version 3.02
Copyright (C) 1998 Free Software Foundation, Inc.......
C:\crp\cnp>type f.f
a a a
a a a
尝试用空格替换“a”。
C:\crp\cnp>type f.f | sed -e s/a/\d032/g
d032 d032 d032
d032 d032 d032
为什么它不工作?
我不介意是否查找或替换空格或新行..我只是希望能够指定它们。它似乎不起作用,我不知道为什么。
(用 f 替换空格或空格不起作用)
C:\crp\cnp>echo a a | sed s/\d32/f/
a a
注意-它似乎可以在 4.2 中工作,但我对 3.02 感兴趣,因为这是与 unxutils 捆绑在一起的版本http://unxutils.sourceforge.net/ http://unxutils.sourceforge.net/
更新问题-
感谢 paxdiablo 的提示..关于 gnu32win,我现在使用它而不是 unxutils。它是最新的。我现在可以指定空格。还有 Ghostdog 和 Paxdiablo 的提示,我看到了双引号。我可以用 \d(自使用 4.2 以来)或空格指定空格。
但是,我仍然无法删除新行
C:\crp>输入 f.f | sed -e "s/\r\n/f/g"
a aa
b bb
c cc
C:\crp>输入 f.f | sed -e "s/\d013\d010/f/g"
a aa
b bb
c cc
C:\crp>输入 f.f | sed -e "s/\x0D\x0A/f/g"
a aa
b bb
c cc
Note:这个问题是2010年的。现在已经是2020年了。Gnuwin32已经过时了(比如上次更新Gnuwin32 sed是2010年,Sed 4.2.1是2009年的),Unxutils更过时了。因此,截至撰写本文时,Gnuwin32 已经过时了 10 年,而截至 2020 年,Unxutils 更像是已经过时了 20 年。Cygwin 仍然保持最新状态,截至撰写本文时,Sed v 4.4 是从 2017 年开始的。