bash - 使用 sed 命令将每个字母更改为字母表中的下一个
问题描述
这是什么是文件beast.txt:野蛮野兽坦克美女
我想让它看起来像:tbwbhf cfbtu ubol cfbvuz
这就是我所拥有的,但是当我运行它时,它会将字母更改为“[az]+1”。
猫兽.txt | sed 's/[az]/[az]+1/g' > savage.txt
我必须在 sed 命令中使用其他特殊字符还是应该通过循环来完成?谢谢您的帮助。
解决方案
这不是 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
推荐阅读
- tcp - TCP上的注册消息
- javascript - 使用样式参数的样式组件与功能组件
- linux - 从 Linux 命令行仅生成 SHA-256 哈希
- selenium - ChromeDriverService 和 Azure DevOps 代理
- ios - 通过 CocoaPods 添加 AudioKit 后的链接错误
- mysql - 在 SQL 过程中执行,限制为 i
- vb.net - 由于“插入语句中的语法错误”,我的输出没有进入数据库
- python - 值错误:以 10 为基数的 int() 的无效文字:'import' - Python
- automation - 启动 appium 检查器,当 appium 服务器以编程方式启动时
- php - 在 laravel 中附加 JSON 数组的 url