用于替换某些字符的unix实用程序[重复]
Posted
技术标签:
【中文标题】用于替换某些字符的unix实用程序[重复]【英文标题】:unix utilities to replace certain characters [duplicate] 【发布时间】:2014-06-07 19:23:17 【问题描述】:我正在尝试进入 UNIX。我想替换和-
,?
,:
,/
,&
变成%5f
,%3f
%3a
,%2f
,%26
these(@87654332@these是ASCII码对应的十六进制数字)。
我也试图让任何小写字符变为大写,反之亦然,例如the rock
变成 THE ROCK
和 THE ROCK
变成 the rock
。
我正在尝试使用标准的 UNIX 实用程序命令和脚本来完成这一切,最好是一行。
到现在为止
tr A-Z a-z
但不确定如何使?
和其他的吐出相应的十六进制#s。
【问题讨论】:
您所说的十六进制转换是url encoding,为此您应该检查urlencode-from-a-bash-script 以获得一些想法。 【参考方案1】:我想将大写变为小写,反之亦然。就像嘿那里 变成了嘿嘿。
tr
可以做到:
$ echo Hey TherE | tr '[a-zA-Z]' '[A-Za-z]'
hEY tHERe
tr
进行翻译,并且在上面将小写转换为大写,反之亦然。
至于用十六进制值替换某些字符,这里是使用sed
的蛮力方法:
$ echo "and-or?" | sed 's/-/%2d/g; s/?/%3f/g; s/:/%3a/g; s|/|%2f|g; s/&/%26/g; s/ /%20/g'
and%2dor%3f
【讨论】:
哇!!! and or 有什么作用? 'and5' 和 'for' 之间不应该有空格吗? @user3563184 字符串and-or?
只是一个包含两个特殊字符的输入示例:-
和?
。如果您希望将 and-or?
转换为其他内容,请告诉我。
我想我对正在发生的事情感到困惑。如果我真的运行它会发生什么?我得到一个不匹配的错误。我想我不确定 and-or 实际上是什么
@user3563184 $
是命令提示符。您的提示可能会更长,但它们通常以 $
结尾。 echo "and-or?"
创建样本输入。用您想要的任何内容替换引号中的字符串。 sed...
部分进行转换。在第一行运行命令后,第二行应该作为输出出现。 (如果我错过了你的问题,请告诉我。)
哦对不起你的权利非常感谢你。你太棒了,我刚读了 100 遍就明白了,哈哈以上是关于用于替换某些字符的unix实用程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 unix 实用程序 (sed/tr/awk) 用非转义等效项替换所有转义序列
如何使用某些控制台实用程序将目录中的 .ogg 文件转换为 .wav 文件 [重复]
thymeleaf 中 String 对象的 #strings.replace() 实用程序方法是不是替换了提供的字符串中的所有匹配项?