Есть ли встроенная команда Linux, который позволяет выводить строку N раз входной строки??
adrian@Fourier:~$ printf 'HelloWorld\n%.0s' {1..5}
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
adrian@Fourier:~$
Здесь'ов-старинке, что'ы довольно портативный:
yes "HelloWorld" | head -n 10
Это более обычной версии Адриан Петреску'ы ответ через расширение скобок:
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}
Достаточно несколько хороших способов, о которых уже говорилось. Может'т забыть о старой доброй сл
, хотя:
в <предварительно>[Ин@удивительными]$для меня в последующие 5`; делать Эхо "Привет", у;сделано Привет Привет Привет Привет Привет</пре>
Вы можете использовать трюк. Гулкий пустой переменной не печатать ничего. Поэтому можно написать:
echo word$wojek{1..100}
Если $wojek1 $wojek2
... $wojek100
не существующие переменные, вы получите слово, повторенное 100 раз больше ничего не требуется.
Возможно, еще один способ, который является более общим и полезным для вас:
adrian@Fourier:~$ n=5
adrian@Fourier:~$ for (( c=1; c<=n; c++)) ; do echo "HelloWorld" ; done
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
adrian@Fourier:~$
Оболочка bash является более мощным, чем большинство людей думают :)
Повторяю N
раз, просто положить Н-1
запятые между {}
:
$ echo 'helloworld'{,,}
helloworld helloworld helloworld
Повторяет 'Это' дважды после первого Эхо.
awk 'BEGIN {while (c++<4) printf "Hello"}'
Результат
в <предварительно> HelloHelloHelloHello </пред>
Я'вэ разбиты предупреждений трубы с " Да " решение, так и здесь'ы еще один хороший вариант:
$ seq 4 | sed "c foo"
foo
foo
foo
foo
основываясь на том, что @Пайк намекая на
для каждого символа в строке Echo строка
echo ${target//?/$replace}
Пример заголовка подчеркнул С =
символов
export heading='ABCDEF';
export replace='=';
echo -e "${heading}\n${heading//?/$replace}"
будет выходной
ABCDEF
======
Это, кажется, порт между Linux и OS X, и это делает меня счастливой.
в njoy!
Если вы'вновь на BSD, вы можете просто использовать след
.
$ seq -f "Hello, world" 5
Hello, world
Hello, world
Hello, world
Hello, world
Hello, world
line="==========================="
line=${line:0:10}
${line//"="/"ten "}
выходы
ten ten ten ten ten ten ten ten ten ten
Если вы хотите что-то вроде Perl'оператор с X
, где вы Don'т автоматически получаете новую строку между повторениями:
x() {
# usage: x string num
for i in $(seq 1 $2); do printf "%s" "$1"; done
# print a newline only if the string does not end in a newline
[[ "$1" == "${1%$'\n'}" ]] && echo ""
}
x Hi 10 # ==> HiHiHiHiHiHiHiHiHiHi
x $'Hello World!\n' 3
Я явно использовали для
петли, потому что вы можете'т писать {1..$н}
в bash: фигурные скобки до замены переменной.
Точно не встроенный в Linux, но если у вас есть Python установлен..
python
>>>var = "string"
>>>var*n
Или в одну строку, как комментатор предложил:
python -c 'print "This is a test.\n" * 10'
Попробуйте это:
echo $(for i in $(seq 1 100); do printf "-"; done)
Создаст (сто тире):