From dfad93c71df5c60d6e7be13cc43fd4a32ee17fa9 Mon Sep 17 00:00:00 2001 From: fro Date: Sun, 24 Aug 2025 08:26:31 -0500 Subject: [PATCH] / rot() and rotl() supports up to rot 25, and rotl is rot length (rotate the length of the string) --- dots/bash/.bashrc | 105 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/dots/bash/.bashrc b/dots/bash/.bashrc index 2e761df..0aa3547 100644 --- a/dots/bash/.bashrc +++ b/dots/bash/.bashrc @@ -355,20 +355,123 @@ rot() { echo "$2" | tr 'a-z' 'b-za' elif [[ $1 == "-1" ]] ; then echo "$2" | tr 'b-za' 'a-z' + elif [[ $1 == "2" ]] ; then + echo "$2" | tr 'a-z' 'c-zab' + elif [[ $1 == "-2" ]] ; then + echo "$2" | tr 'c-zab' 'a-z' + elif [[ $1 == "3" ]] ; then + echo "$2" | tr 'a-z' 'd-zabc' + elif [[ $1 == "-3" ]] ; then + echo "$2" | tr 'd-zabc' 'a-z' + elif [[ $1 == "4" ]] ; then + echo "$2" | tr 'a-z' 'e-zabcd' + elif [[ $1 == "-4" ]] ; then + echo "$2" | tr 'e-zabcd' 'a-z' elif [[ $1 == "5" ]] ; then echo "$2" | tr 'a-z' 'f-zabcde' elif [[ $1 == "-5" ]] ; then echo "$2" | tr 'f-zabcde' 'a-z' + elif [[ $1 == "6" ]] ; then + echo "$2" | tr 'a-z' 'g-zabcdef' + elif [[ $1 == "-6" ]] ; then + echo "$2" | tr 'g-zabcdef' 'a-z' + elif [[ $1 == "7" ]] ; then + echo "$2" | tr 'a-z' 'h-zabcdefg' + elif [[ $1 == "-7" ]] ; then + echo "$2" | tr 'h-zabcdefg' 'a-z' elif [[ $1 == "8" ]] ; then echo "$2" | tr 'a-z' 'i-zabcdefgh' elif [[ $1 == "-8" ]] ; then echo "$2" | tr 'i-zabcdefgh' 'a-z' + elif [[ $1 == "9" ]] ; then + echo "$2" | tr 'a-z' 'j-zabcdefghi' + elif [[ $1 == "-9" ]] ; then + echo "$2" | tr 'j-zabcdefghi' 'a-z' + elif [[ $1 == "10" ]] ; then + echo "$2" | tr 'a-z' 'k-zabcdefghij' + elif [[ $1 == "-10" ]] ; then + echo "$2" | tr 'k-zabcdefghij' 'a-z' + elif [[ $1 == "11" ]] ; then + echo "$2" | tr 'a-z' 'l-zabcdefghijk' + elif [[ $1 == "-11" ]] ; then + echo "$2" | tr 'l-zabcdefghijk' 'a-z' + elif [[ $1 == "12" ]] ; then + echo "$2" | tr 'a-z' 'm-zabcdefghijkl' + elif [[ $1 == "-12" ]] ; then + echo "$2" | tr 'm-zabcdefghijkl' 'a-z' + elif [[ $1 == "13" ]] ; then + echo "$2" | tr 'a-z' 'n-zabcdefghijklm' + elif [[ $1 == "-13" ]] ; then + echo "$2" | tr 'n-zabcdefghijklm' 'a-z' + elif [[ $1 == "14" ]] ; then + echo "$2" | tr 'a-z' 'o-zabcdefghijklmn' + elif [[ $1 == "-14" ]] ; then + echo "$2" | tr 'o-zabcdefghijklmn' 'a-z' + elif [[ $1 == "15" ]] ; then + echo "$2" | tr 'a-z' 'p-zabcdefghijklmno' + elif [[ $1 == "-15" ]] ; then + echo "$2" | tr 'p-zabcdefghijklmno' 'a-z' + elif [[ $1 == "16" ]] ; then + echo "$2" | tr 'a-z' 'q-zabcdefghijklmnop' + elif [[ $1 == "-16" ]] ; then + echo "$2" | tr 'q-zabcdefghijklmnop' 'a-z' + elif [[ $1 == "17" ]] ; then + echo "$2" | tr 'a-z' 'r-zabcdefghijklmnopq' + elif [[ $1 == "-17" ]] ; then + echo "$2" | tr 'r-zabcdefghijklmnopq' 'a-z' + elif [[ $1 == "18" ]] ; then + echo "$2" | tr 'a-z' 's-zabcdefghijklmnopqr' + elif [[ $1 == "-18" ]] ; then + echo "$2" | tr 's-zabcdefghijklmnopqr' 'a-z' + elif [[ $1 == "19" ]] ; then + echo "$2" | tr 'a-z' 't-zabcdefghijklmnopqrs' + elif [[ $1 == "-19" ]] ; then + echo "$2" | tr 't-zabcdefghijklmnopqrs' 'a-z' + elif [[ $1 == "20" ]] ; then + echo "$2" | tr 'a-z' 'u-zabcdefghijklmnopqrst' + elif [[ $1 == "-20" ]] ; then + echo "$2" | tr 'u-zabcdefghijklmnopqrst' 'a-z' + elif [[ $1 == "21" ]] ; then + echo "$2" | tr 'a-z' 'v-zabcdefghijklmnopqrstu' + elif [[ $1 == "-21" ]] ; then + echo "$2" | tr 'v-zabcdefghijklmnopqrstu' 'a-z' + elif [[ $1 == "22" ]] ; then + echo "$2" | tr 'a-z' 'w-zabcdefghijklmnopqrstuv' + elif [[ $1 == "-22" ]] ; then + echo "$2" | tr 'w-zabcdefghijklmnopqrstuv' 'a-z' + elif [[ $1 == "23" ]] ; then + echo "$2" | tr 'a-z' 'x-zabcdefghijklmnopqrstuvw' + elif [[ $1 == "-23" ]] ; then + echo "$2" | tr 'x-zabcdefghijklmnopqrstuvw' 'a-z' + elif [[ $1 == "24" ]] ; then + echo "$2" | tr 'a-z' 'y-zabcdefghijklmnopqrstuvwx' + elif [[ $1 == "-24" ]] ; then + echo "$2" | tr 'y-zabcdefghijklmnopqrstuvwx' 'a-z' + elif [[ $1 == "25" ]] ; then + echo "$2" | tr 'a-z' 'z-zabcdefghijklmnopqrstuvwxy' + elif [[ $1 == "-25" ]] ; then + echo "$2" | tr 'z-zabcdefghijklmnopqrstuvwxy' 'a-z' fi + fi } -#echo "frode" | tr 'a-z' 'i-zabcdefgh' +rotl() { + if [[ -n $1 ]] ; then + size=${#1} + if [[ "$size" > 25 ]] && [[ "$size" < 51 ]] ; then + echo "reduce size by 25" + size=$((size - 25)) + fi + + # https://stackoverflow.com/questions/20871534/concatenate-in-bash-the-output-of-two-commands-without-newline-character + { echo "rot +$size: "; rot $size $1; } | tr "\n" " " + echo + { echo "rot -$size: "; rot -$size $1; } | tr "\n" " " + echo + fi +} # ---