Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 用于替换某些字符的unix实用程序_Shell_Unix - Fatal编程技术网

Shell 用于替换某些字符的unix实用程序

Shell 用于替换某些字符的unix实用程序,shell,unix,Shell,Unix,我正在尝试进入UNIX。我想替换和-,?,:,/,&成为%5f,%3f%3a,%2f,%26,%20(这些是对应于ASCII码的十六进制数字) 我还试图使任何小写字符变为大写,反之亦然,例如,岩石变为岩石和岩石变为岩石 我尝试使用标准的UNIX实用程序命令和脚本来完成这项工作,理想情况下,所有命令都在一行中完成 到目前为止,我有 tr A-Z a-z 但是不知道如何使?和其他的吐出相应的十六进制 我想把大写字母转换成小写字母,反之亦然。像是嘿 嘿,那里 tr可以做到: $ echo Hey T

我正在尝试进入UNIX。我想替换和
-
/
&
成为
%5f
%3f
%3a
%2f
%26
%20
(这些是对应于ASCII码的十六进制数字)

我还试图使任何小写字符变为大写,反之亦然,例如,
岩石
变为
岩石
岩石
变为
岩石

我尝试使用标准的UNIX实用程序命令和脚本来完成这项工作,理想情况下,所有命令都在一行中完成

到目前为止,我有

tr A-Z a-z
但是不知道如何使
和其他的吐出相应的十六进制

我想把大写字母转换成小写字母,反之亦然。像是嘿 嘿,那里

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或做什么?“and 5”和“for”之间不应该有空格吗?@user3563184字符串
和/或?
只是包含两个特殊字符的输入示例:
-
。如果你想把
和/或?
转换成其他东西,请告诉我。我想我不知道发生了什么。如果我真的这么做,会发生什么?我有一个不匹配的错误。我想我不知道到底是什么is@user3563184
$
是命令提示符。提示可能较长,但通常以
$
结尾<代码>回显“和或?”创建样本输入。将引号中的字符串替换为所需的字符串。
sed…
部件进行转换。在第一行上运行命令后,第二行应显示为输出。(如果我没有抓住你问题的重点,请告诉我。)哦,对不起,你说的对,非常感谢。你太棒了,我读了100遍就明白了,哈哈