1

我在 bash 中有以下字符串

str="kallel"

我想strstr2. str2包含重复,str直到长度 = 20。所以结果应该是这样的:

str2="kallelkallelkallelka"

如何在 bash 中进行操作?

4

4 回答 4

5
$ str="kallel"

$ str2=$(printf "$str%.0s" {1..20})
$ echo "$str2"
kallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallelkallel

$ str2=$(printf "$str%.0s" {1..3})
$ echo "$str2"
kallelkallelkallel

$ n=5
$ str2=$(printf "$str%.0s" $(seq "$n"))
$ echo "$str2"
kallelkallelkallelkallelkallel
于 2019-07-01T13:14:28.837 回答
4

这应该有效:

str="kallel"
str2="${str}"
while (( ${#str2} < 20 ))
do
  str2="${str2}${str}"
done
str2="${str2:0:20}"
于 2013-05-10T14:57:47.373 回答
2

我会亲自去一段时间循环,然后在最后剪掉它。

当 的长度str2小于 20 时,添加strstr2. 然后,为了更好地衡量,我们在最后削减到最多 20 个字符。

#!/bin/bash
str="kallel"
str2=""
while [ ${#str2} -le 20 ]
do
    str2=$str2$str
done
str2=`echo $str2 | cut -c1-20`
于 2013-05-10T14:50:03.383 回答
2

我 100% 从Bash 窃取了这个答案:重复一个字符串变量 n 次,但我认为它很无聊(尽管是一个 6 岁的问题):

$ yes "kallel" | head -20  | xargs | sed 's/ //g' | cut -c1-20
kallelkallelkallelka
于 2019-07-01T12:38:58.753 回答