加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 用空格替换所有项目符号

发布时间:2020-12-15 22:14:40 所属栏目:安全 来源:网络整理
导读:如何用空格替换项目符号(八进制值:225,十六进制值:95)? 我尝试使用以下命令: echo '?test' | tr '225' ' 'echo '?test' | awk '{gsub(/225/," ");print $0}'echo '?test' | sed 's/o225/ /g'echo '?test' | LANG='' sed 's/o225/ /g'echo '?test' |
如何用空格替换项目符号(八进制值:225,十六进制值:95)?
我尝试使用以下命令:

echo '?test' | tr '225' ' '

echo '?test' | awk '{gsub(/225/," ");print $0}'

echo '?test' | sed 's/o225/ /g'

echo '?test' | LANG='' sed 's/o225/ /g'

echo '?test' | sed 's/x95/ /g'

以上命令不起作用.

解决方法

让我们来看看你目前的努力失败的原因:

$echo '?test' | hexdump -C
00000000  e2 80 a2 74 65 73 74 0a                           |...test.|
00000008

这些子弹实际上是三个字节 – e2 80 a2,而不是单个0x95.

纠正的sed表达式工作正常:

echo '?test' | sed -e 's/?/ /g'

…或(使用bash扩展语法在/ bin / sh中不可用)…

echo '?test' | sed -e  $'s@xe2x80xa2@ @g'

…或(使用bash-builtin替换功能):

s='?test'             # original string in s
orig='?'              # item to replace
new=' '               # thing to replace it with
s2=${s//"$orig"/$new} # result in s2

…或(使用GNU sed扩展,根据@anubhava)…

echo '?test' | sed 's@xe2x80xa2@ @g'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读