首页 > 解决方案 > 使用 sed 命令将每个字母更改为字母表中的下一个

问题描述

这是什么是文件beast.txt:野蛮野兽坦克美女

我想让它看起来像:tbwbhf cfbtu ubol cfbvuz

这就是我所拥有的,但是当我运行它时,它会将字母更改为“[az]+1”。

猫兽.txt | sed 's/[az]/[az]+1/g' > savage.txt

我必须在 sed 命令中使用其他特殊字符还是应该通过循环来完成?谢谢您的帮助。

标签: bashsed

解决方案


这不是 sed 的工作:

$ echo 'savage beast tank beauty' | tr a-z b-za
tbwbhf cfbtu ubol cfbvuz

如果你真的想使用 sed,你可以这样做:

$ b2z=bcdefghijklmnopqrstuvwxyz
$ echo 'savage beast tank beauty' | sed -e "y/a$b2z/${b2z}a/"
tbwbhf cfbtu ubol cfbvuz

推荐阅读