与sed -r相对的字母? [重复]

问题描述 投票:1回答:3

我有一个带有随机字母字符的文本,我想将每个字符更改为他的对应字符。恩。我有一个角色z,我把它改成a,b到y等。我真的找不到更好的方法来做到这一点,除非我做

sed -r -e 's/a/z/' -e 's/b/y/' ... 's/z/a/'

有没有办法以更简单的方式做到这一点?

我只想在sed中使用-r选项。使用y命令可能吗?

regex bash sed
3个回答
2
投票

tr更容易,例如用于小写字符

$ z_a=$(echo {z..a} | tr -d ' '); echo adfa alfja | tr a-z $z_a
zwuz zouqz

由于z-a无法处理“反向整理顺序”,因此需要绕道创建tr


0
投票

我知道这不是一个sed解决方案,但这似乎只是简单,直接使用perl:

cat input_file | perl -ple 's/(.)/chr(25-ord($1)+ord("a")*2)/eg'

0
投票

sed来了,一种方式是这样的:

sed -r 'y/'"$(echo {a..z})"'/'"$(echo {z..a})"'/' file
© www.soinside.com 2019 - 2024. All rights reserved.