是否有一個用於將字符串中的所有字符移動一些i
數字的單行程式。輸入字符串可以包含任何ASCII字符。這將是一個密碼。如何在linux中使用一定數量的字符來移動字符串
例如,如果b
來後a
然後command 1 "ab"
回報"bc"
,command 3 "ab"
回報"de"
。它應該與任何ASCII字符,而不僅僅是字母。
是否有一個用於將字符串中的所有字符移動一些i
數字的單行程式。輸入字符串可以包含任何ASCII字符。這將是一個密碼。如何在linux中使用一定數量的字符來移動字符串
例如,如果b
來後a
然後command 1 "ab"
回報"bc"
,command 3 "ab"
回報"de"
。它應該與任何ASCII字符,而不僅僅是字母。
你想要的命令叫做凱撒。
使用Perl
:
echo -n bbb | perl -F'' -ane 'foreach(@F){$_++; printf "$_"}END{print "\n"}'
ccc
如果你需要轉向A 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
這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
作爲變量,以限定換檔步驟。
請指定您使用的語言(帶有標籤)並添加您嘗試過的代碼(在您的問題中)。 –