LINUX.ORG.RU

Форматированный вывод bash

 ,


0

2

Привет всем.

Имеем:

string_1="qwertyuiop"
string_2="asdf"

Нужно вывести:

asdfg     ; 
qwertyuiop;
Знаем количество необходимых знаков до ";"

Знаем длину строки string_1

необходимо заполнить остаток пробелами или табуляцией.

К примеру:

Длина общей строки равна 60 символов

Длина строки string_1 равна 30

т.е. мне нужно к string_1 добавить 30 пробелов.

Как реализовать?

printf уже сказали..

но можно и так: TABSIZE=30 echo «to be or not to be\t?»

ps/ TAB или TABSIZE не уверен..не помню - пишу из под оффтопик

MKuznetsov ★★★★★ ()

ну вот например добавляем плюсики, пока не будет ровно 10 символов:

$ echo "abc" | sed -r ':l;/.{10}/q;s/.*/&+/;bl'
abc+++++++

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

Удивляюсь, как ещё никто не придумал аппаратный процессор языка sed? Это же в чистом виде ассемблер для обработки текста. Только regex'ы интеллектуальны, остальное - набор примитивов :)

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

Ага, ещё и с регэкспами? С нечётким поиском подстроки в строке хотя бы справился бы...

Абсолютно серьёзно: если бы Intel и AMD перестали страдать игровой х-нёй и занялись выпуском реально востребованной ещё позавчера вещью - процессоров обработки текстовых данных - весь мир интернет, в котором мы с вами уже давно проводим по 12 часов в день - ускорился бы в разы.

Математико-логические процессоры в современных реалиях, когда на 99% вычислительная техника занимаетсмя обработкой текстовых данных - это просто смешно. Ещё смешнее, когда к этому анально-добровольно приляпывают GPU, чтоб матрицы побыстрее считались.

Разработка текстового сопроцессора с инструкциями типа sed могла бы ускорить работу миллиардов веб-приложений по всему миру, а с ними - ускорила бы и экономический рост.

Я уж не говорю о банальных практических применениях наподобие исследования генома человека.

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

Советую это предложить разработчикам какого-нибудь специфического eaist.tech.mos.ru

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

Ага, ещё и с регэкспами?

ВНЕЗАПНО: да. Алгоритм shift-and как раз неплохо справляется со строками и регулярками. И оно в принципе ложится на SIMD(смысл алгоритма в том, что обрабатывается _одновременно_ несколько символов, сколько влезет в машинное слово).

см. http://en.wikipedia.org/wiki/Bitap_algorithm но там конечно реализация для 32х битных систем, и профит не очень высокий.

Абсолютно серьёзно: если бы Intel и AMD перестали страдать игровой х-нёй и занялись выпуском реально востребованной ещё позавчера вещью - процессоров обработки текстовых данных - весь мир интернет, в котором мы с вами уже давно проводим по 12 часов в день - ускорился бы в разы.

дык сегодня SSE и не нужно для игор и графики. Графика на GPU обсчитывается, т.ч. SSE как раз тексты и молотит.

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