bar*_*lop 2 windows command-line gnu sed command-prompt
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
Run Code Online (Sandbox Code Playgroud)
试图用空格替换'a'.
C:\crp\cnp>type f.f | sed -e s/a/\d032/g
d032 d032 d032
d032 d032 d032
Run Code Online (Sandbox Code Playgroud)
为什么不工作?
我不介意我是在寻找还是替换空格或换行......我只是希望能够指定它们.它似乎没有工作,我不知道为什么.
(用f替换空格或空格不起作用)
C:\crp\cnp>echo a a | sed s/\d32/f/
a a
Run Code Online (Sandbox Code Playgroud)
注意 - 似乎它可能在4.2中工作,但我对3.02'cos感兴趣,这是与unxutils捆绑在一起的版本http://unxutils.sourceforge.net/
更新问题 - 感谢paxdiablo的提示......关于gnu32win,我现在正在使用它而不是unxutils.它更新了.我现在可以指定空格.和鬼狗的小费,以及paxdiablo,我看到双引号.我很好用\ d(因为使用4.2)或空格指定空格.但是,我仍然无法删除新行
C:\ crp>输入ff | sed -e"s /\r \n/f/g"
aa
b bb
c cc
C:\ crp>输入ff | sed -e"s /\d013\d010/f/g"
aa
b bb
c cc
C:\ crp>输入ff | sed -e"s /\x0D\x0A/f/g"
aa
b bb
c cc
你为什么不只是使用空格字符而不是一些有趣的编码?如:
sed -e 's/a/ /g'
Run Code Online (Sandbox Code Playgroud)
对于它的价值,您提供的命令也无法在4.2.1中工作,但是,如果您添加引号,它确实有效.所以我建议你把它改成:
sed -e 's/a/\d032/g'
Run Code Online (Sandbox Code Playgroud)
道歉,我刚刚注意到你正在运行Windows,所以你可能已经获得了CygWin或GnuWin32(或同等版本).
在Windows下,引号的工作方式不同,因此您应该尝试两件事.首先是使用"而不是'引号:
sed -e "s/a/ /g"
Run Code Online (Sandbox Code Playgroud)
否则,Windows中的转义字符是^这样的,应该能够逃避空间:
sed -e s/a/^ /g
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我想切换到GnuWin32,如果可能的话,它有更新的版本
sed(例如).看起来UnxUtils自2003年以来根据您链接的网页进行了更新.您可以从这里获得个别包裹.您正在寻找coreutils包含大量UNIX文本处理工具包的内容.
但是,如果你坚持使用UnxUtils,我只会使用实际空间而不是十进制代码,然后我会用掉掉tr新行:
tr -d "\n"
Run Code Online (Sandbox Code Playgroud)
当然假设trin textutils可以处理该语法:-)
| 归档时间: |
|
| 查看次数: |
8607 次 |
| 最近记录: |