GNU sed-查找或替换空格或换行。为什么这不起作用? v3.02和v4.2

问题描述 投票:3回答:3
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'cos感兴趣,因为它是与unxutils http://unxutils.sourceforge.net/捆绑在一起的版本>

更新为问题-感谢paxdiablo的技巧。.关于gnu32win,我现在使用的是unxutils。它是最新的。我现在可以指定空格。还有幽灵狗的尖头和paxdiablo,我看到了双引号。我可以用\ d(因为使用4.2)或空格来指定空格。但是,我仍然无法删除新行

C:\ crp> type f.f | sed -e“ s / \ r \ n / f / g”

aa a

b bb

c cc

C:\ crp> type f.f | sed -e“ s / \ d013 \ d010 / f / g”

aa a

b bb

c cc

C:\ crp> type f.f | sed -e“ s / \ x0D \ x0A / f / g”

aa a

b bb

c cc

注:

这个问题来自2010年。现在是2020年。Gnuwin32已过时(例如,上一次更新其Gnuwin32 sed的时间是2010年,而Sed 4.2.1是2009年的),Unxutils甚至是更多过时的。因此,截止到2020年,Gnuwin32已经过时了十年,而Unxutils截止到2020年则已经过了二十年。Cygwin仍保持最新状态,截止至2017年,Sed v 4.4截止。]

C:\ crp \ cnp> sed -V GNU sed版本3.02版权所有(C)1998自由软件基金会,公司....... C:\ crp \ cnp>类型ff aaaaaa试图用'a'替换空格。 C:\ crp \ cnp>键入f.f | ...

windows command-line sed gnu command-prompt
3个回答
6
投票

为什么不只使用空格字符本身,而不使用一些有趣的编码?如:

sed -e 's/a/ /g'

2
投票
我在Win XP上遇到了同样的问题,尝试打印新行“ \ n”时,双引号不起作用。解决方案是使用textutils中的新UnxUpdates.zip可以正确使用“ \ n”。

0
投票
在Windows上,使用双引号
© www.soinside.com 2019 - 2024. All rights reserved.