是否有一个班轮将一个字符串中的所有字符移动一些i
个号码。输入字符串可以包含任何ascii字符。这将是一个密码。
例如,如果b
在a
之后,command 1 "ab"
返回"bc"
,则command 3 "ab"
会返回"de"
。它应该适用于任何ascii字符而不仅仅是字母。
答案 0 :(得分:0)
您想要的命令称为caesar。
答案 1 :(得分:0)
使用Perl
:
echo -n bbb | perl -F'' -ane 'foreach(@F){$_++; printf "$_"}END{print "\n"}'
ccc
如果您需要移动N个字符(在4
下方的情况下):
echo -n bbb | perl -F'' -ane 'foreach(@F){ $a=ord($_); $a+=4; print chr($a)} END{print "\n"}'
fff
转向负值:
echo -n bbb | perl -F'' -ane 'foreach(@F){ $a=ord($_); $a-=1; print chr($a)} END{print "\n"}'
aaa
答案 2 :(得分:0)
这个gawk命令为你提供了ascii code+1
的新序列:
awk 'BEGIN{FS=OFS="";s=2;for(n=0;n<=127;n++)ord[sprintf("%c",n)]=n}
{for(i=1;i<=NF;i++)$i=sprintf("%c",(ord[$i]+s)%127)}7'
使用步骤2
移动字符串进行测试:
kent$ echo "xyab+123"|awk 'BEGIN{FS=OFS="";s=2;for(n=0;n<=127;n++)ord[sprintf("%c",n)]=n}{for(i=1;i<=NF;i++)$i=sprintf("%c",(ord[$i]+s)%127)}7'
z{cd-345
您只需要将s
作为变量传递,以定义移位步骤。