Команда Linux для повторения строки n времена

Есть ли какая-либо встроенная команда Linux, которая позволяет производить строку, которая является n временами входная строка??

72
задан 23.10.2015, 19:00

6 ответов

adrian@Fourier:~$ printf 'HelloWorld\n%.0s' {1..5}
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
adrian@Fourier:~$
75
ответ дан 07.12.2019, 08:10

Не точно встроенный к Linux, но если Вам установили Python..

python
>>>var = "string"
>>>var*n

Или в одной строке, как предложенный комментатор:

python -c 'print "This is a test.\n" * 10'
2
ответ дан 07.12.2019, 08:10

Возможно, иначе это является более общим и полезным для Вас:

adrian@Fourier:~$ n=5
adrian@Fourier:~$ for (( c=1; c<=n; c++)) ; do echo "HelloWorld" ; done
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
adrian@Fourier:~$ 

Оболочка удара более мощна, чем думает большинство людей :)

10
ответ дан 07.12.2019, 08:10

Вот старомодный способ, которым это довольно портативно:

yes "HelloWorld" | head -n 10

Это - более стандартная версия ответа Adrian Petrescu с помощью расширения фигурной скобки:

for i in {1..5}
do
    echo "HelloWorld"
done

Это эквивалентно:

for i in 1 2 3 4 5

Это - немного более краткая и динамическая версия ответа щуки:

printf -v spaces '%*s' 10 ''; printf '%s\n' ${spaces// /ten}
69
ответ дан 07.12.2019, 08:10

Уже упоминаются довольно много хороших путей. Не может забыть о старом добром seq хотя:

[john@awesome]$for i in `seq 5`; do echo "Hi";done
Hi
Hi
Hi
Hi
Hi
13
ответ дан 07.12.2019, 08:10
line="==========================="
line=${line:0:10}
${line//"="/"ten "}

выводы

ten ten ten ten ten ten ten ten ten ten
2
ответ дан 07.12.2019, 08:10

Теги

Похожие вопросы