LINUX.ORG.RU

AWK повторить символ n-раз


0

1

Давненько я не брал в руки шашек.... и вот не могу сообразить как в AWK повторить символ n-раз. Мне для форматирования красивого вывода надо.

# Типа вывести строчку переменной длины:

printf(«%s\n», String);

# и подчеркнуть ее:

printf(«%s\n», "-" повторить length(String) раз);

По элегантней бы хотелось. без циклов



Последнее исправление: hi_artem (всего исправлений: 2)

как это поэлегантней без циклов? чем тебя циклы не устроили?

val-amart ★★★★★
()

perl -E 'say «a"x100'
А в awk циклами

Olegymous ★★★
()

Правильно, зачем циклы. Смотри как элегантно можно сделать без них BEGIN { symbol="-"; count=20 }{ str=sprintf(«%*c»,count,symbol); gsub(" ",symbol,str); print str }

Chumka ★★★
()
Ответ на: комментарий от Chumka

Все же одним оператором не получилось. Значит придется все это убрать в user function,а тогда уж циклом получится короче и яснее:

#Версия с циклом:

function prn( ntimes, char) { for (j=1; j<=ntimes; j++) printf(«%c»,char) }

#Версия с gsub:

function prn( ntimes, char) { str=sprintf(«%*c», ntimes, char) gsub(" ", char,str) printf(«%s», str) }

hi_artem
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.