移动单词中的字母位置
我想要一个命令/函数,最好是 bash,它接受一个单词/字符串和一个数字,并将单词中的字母位置移动该数字,将溢出旋转回开头。
例如,输入 stack
和 2
输出将为 cksta
我曾考虑过使用 tr
但我不能弄清楚如何使其通用以适用于任何单词,而不仅仅是翻译目标单词中的特定字母。
I want a command/function, preferably bash, that takes a word/string and a number and shifts the letter positions in the word by that number, rotating the overflow back to the beginning.
e.g. with input stack
and 2
the output would be cksta
I have thought about using tr
but I couldn't quite figure out how to make it general so as to work with any word, and not just translating specific letters from a target word.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 bash 的内置字符串操作:
示例:
You can use
bash
's built-in string manipulation:Example:
另一种常见的方法是“双倍”字符串,这可以简化子字符串:
Another common approach is to "double" the string, which simplifies the substringery:
稍微短一点的是负值的使用,从右数:
因为 :- 有自己的含义,所以你必须在它前面放一个空格。
A bit shorter is the usage of negative values, to count from right:
since :- has an own meaning, you have to put a blank before it.