nel*_*aro 9 linux vim sed special-characters
我在配置文件中有一些问题,其中包含不间断的空格字符。
我应该如何用 sed 指定该字符,以便我可以用空格替换它。
sed -n 's/ / /g'
Run Code Online (Sandbox Code Playgroud)
错误示例
名为重启的服务 停止命名:[确定] 开始命名: 命名配置错误: named.localhost:2: 未知 RR 类型“SOA” named.localhost:8: 未知 RR 类型 '@' named.localhost:9: 未知 RR 类型“127.0.0.1” named.localhost:10: 未知 RR 类型 '::1' .....
我试图在这篇文章中包含原始违规文件的一行。它不接缝工作。Pastebin 下载接缝是唯一保留所有原始二进制文件的工具。http://pastebin.com/ZqT1EWbS。您应该能够复制并通过原始行并使其在您的终端中工作。
Tho*_*hor 19
这个问题的答案取决于您遇到的是哪个不间断空格字符。
以下是如何替换问题标题中提到的每个不间断空格字符以及C2 A0OP 根据 pastebin 输出实际询问的 UTF-8 版本 ( ) 的示例。
所有示例都printf用于生成输出,因为它比echo. 空格字符被替换为X's 以使输出更清晰。
printf '&#nbsp;\n' | sed 's/ /X/g'
printf ' \n' | sed 's/&160;/X/g'
printf ' \n' | sed 's/&[aA]0;/X/g'
Run Code Online (Sandbox Code Playgroud)
printf '\xA0\n' | sed 's/\xA0/X/g'
Run Code Online (Sandbox Code Playgroud)
或与tr:
printf '\xA0\n' | tr '\240' 'X'
Run Code Online (Sandbox Code Playgroud)
printf '\x00\xA0\n' | sed 's/\x00\xA0/X/g'
Run Code Online (Sandbox Code Playgroud)
printf '\xC2\xA0\n' | sed 's/\xC2\xA0/X/g'
Run Code Online (Sandbox Code Playgroud)
上述所有情况下的输出为:
X
Run Code Online (Sandbox Code Playgroud)
现在回答您的问题,您的数据如下所示:
printf '@ IN SOA @ rname.invalid. (' | od -x
Run Code Online (Sandbox Code Playgroud)
输出:
0000000 c240 c2a0 c2a0 c2a0 c2a0 c2a0 20a0 4e49
0000020 5320 414f a0c2 4020 7220 616e 656d 692e
0000040 766e 6c61 6469 202e 0a28
0000052
Run Code Online (Sandbox Code Playgroud)
为了C2 A0用普通空格替换s,请使用:
printf '@ IN SOA @ rname.invalid. (' | sed 's/\xC2\xA0/ /g' | od -x
Run Code Online (Sandbox Code Playgroud)
输出:
0000000 2040 2020 2020 2020 4e49 5320 414f 2020
0000020 2040 6e72 6d61 2e65 6e69 6176 696c 2e64
0000040 2820 000a
0000044
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24866 次 |
| 最近记录: |