How to duplicate string in bash?

前端 未结 4 1925
臣服心动
臣服心动 2020-12-22 02:32

I have the following string in bash

str=\"kallel\"

I want to create from str an str2. The str2 conta

相关标签:
4条回答
  • 2020-12-22 02:46
    $ 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
    
    0 讨论(0)
  • 2020-12-22 02:57

    I'd go for a while loop personally then cut it at the end.

    While the length of str2 is less than 20, add str to str2. Then, for good measure, we cut at the end to max 20 characters.

    #!/bin/bash
    str="kallel"
    str2=""
    while [ ${#str2} -le 20 ]
    do
        str2=$str2$str
    done
    str2=`echo $str2 | cut -c1-20`
    
    0 讨论(0)
  • 2020-12-22 03:11

    This should work:

    str="kallel"
    str2="${str}"
    while (( ${#str2} < 20 ))
    do
      str2="${str2}${str}"
    done
    str2="${str2:0:20}"
    
    0 讨论(0)
  • 2020-12-22 03:13

    I am 100% stealing this answer from Bash : Duplicate a string variable n times but I thought it bore repeating (despite being on a 6 year old question):

    $ yes "kallel" | head -20  | xargs | sed 's/ //g' | cut -c1-20
    kallelkallelkallelka
    
    0 讨论(0)
提交回复
热议问题