移动单词中的字母位置

Jor*_*dan 1 bash text-processing tr

我想要一个命令/函数,最好是 bash,它接受一个单词/字符串和一个数字,并将单词中的字母位置移动该数字,将溢出旋转回开头。

例如输入stack2输出将是cksta

我曾考虑过使用,tr但我不太清楚如何使其通用以适用于任何单词,而不仅仅是翻译目标单词中的特定字母。

Car*_*rum 5

您可以使用bash的内置字符串操作:

#!/bin/bash

string=$1
shift=$2

length=${#string}
echo ${string:$length-$shift:$shift}${string:0:$length-$shift}
Run Code Online (Sandbox Code Playgroud)

例子:

$ ./script stack 1
kstac
$ ./script stack 2
cksta
$ ./script stack 3
ackst
$ ./script stack 4
tacks
Run Code Online (Sandbox Code Playgroud)