unix实用程序来替换某些字符

时间:2014-04-23 06:13:10

标签: shell unix

我想进入UNIX。我想将-?:/&替换为%5f%3f {{1 },%3a%2f%26(这些是与ASCII代码对应的十六进制数字)。

我也试图让任何小写字符变为大写,反之亦然,例如%20成为the rockTHE ROCK成为THE ROCK

我试图使用脚本使用标准的UNIX实用程序命令来完成所有操作,理想情况是所有这些命令都在一行上。

到目前为止我已经

the rock

但不确定如何使tr A-Z a-z 和其他人吐出相应的十六进制#s。

1 个答案:

答案 0 :(得分:1)

  

我想将大写字母改为小写,反之亦然。喜欢Hey TherE   变得很糟糕。

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