Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/30: Рейтинг темы: голосов - 30, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 12.09.2010
Сообщений: 16

Выравнивание текста по правому краю терминала

06.01.2011, 19:08. Показов 6453. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравтсвуйте, я только начинаю работать с Unix/Linux системами, поэтому пока плохо умею писать программы. Помогите пожалуйста написать очень простенькую программу выравнивания текста по правому краю терминала. Зарание благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.01.2011, 19:08
Ответы с готовыми решениями:

Выравнивание текста по правому краю
Помогите подправить код, чтобы ровнял текст по правому краю public partial class Form1 : Form { string fileName; ...

Выравнивание текста по правому краю
Помогите, пожалуйста, написать код. Текст, состоящий из ряда строк, выровнаять по провому краю так, чтобы каждая строка завершала...

Выравнивание по правому краю текста в PictureBox
G_arifm->DrawString(String::Format("{0}",rezult), gcnew Drawing::Font("Arial", 14), gcnew SolidBrush(Color::Black), 190, grafVert,...

9
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
07.01.2011, 06:25
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
[guest@localhost tmp]$ f() { for i in $(seq $1); do echo -n ' '; done; }
[guest@localhost tmp]$ f 7
       [guest@localhost tmp]$ f 25
                         [guest@localhost tmp]$ 
[guest@localhost tmp]$ cat file
abcd
defg
hijh
[guest@localhost tmp]$ sed "s/^/$(f 70)/" file
                                                                      abcd
                                                                      defg
                                                                      hijh
[guest@localhost tmp]$
это не выравнивание, а просто отступ
выравнивание требует учёта длины каждой строки

а здесь уже выравнивание
Code
1
2
3
4
5
6
7
8
9
10
11
[guest@localhost tmp]$ cat >file
ab
cdef 
ghijhkl
abc
[guest@localhost tmp]$ for L in $(cat file); do f $((70 - ${#L})); echo $L; done
                                                                    ab
                                                                  cdef
                                                               ghijhkl
                                                                   abc
[guest@localhost tmp]$
пробелы учесть
Code
1
2
3
4
5
6
7
8
9
10
11
[guest@localhost tmp]$ cat >file
a b c
def
ddddddddd
d
[guest@localhost tmp]$ IFS=$'\n'; for L in $(cat file); do f $((70 - ${#L})); echo $L; done                                               
                                                                 a b c                                                                      
                                                                   def                                                                      
                                                             ddddddddd                                                                      
                                                                     d                                                                      
[guest@localhost tmp]$
1
0 / 0 / 0
Регистрация: 12.09.2010
Сообщений: 16
07.01.2011, 13:28  [ТС]
спасибо

Добавлено через 1 час 51 минуту
скажите пожалуйста что мне делать? при вводе текста программы после done пишет f command not found
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
07.01.2011, 14:14
в первом коде вторая строчка
0
0 / 0 / 0
Регистрация: 12.09.2010
Сообщений: 16
10.01.2011, 23:21  [ТС]
скажите пожалуйста, что такое IFS?

Добавлено через 3 минуты
и что значит seq $1?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.01.2011, 02:11
man bash
IFS The Internal Field Separator that is used for word splitting after
expansion and to split lines into words with the read builtin com‐
mand. The default value is ``<space><tab><newline>''.
задействование IFS оставляет только один разделитель вместо трёх

обычный IFS
Code
1
2
3
4
5
6
7
[guest@localhost ~]$ echo -n "$IFS" | cat -et
 ^I$
[guest@localhost ~]$ echo -en " \t\n" | cat -et
 ^I$
[guest@localhost ~]$ echo ${#IFS}
3
[guest@localhost ~]$
замена IFS
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
[guest@localhost tmp]$ cat >file
a b c
def
ddddddddd
d
[guest@localhost tmp]$ ( IFS=$'\n'; for l in $(cat file); do echo 1 $l; done )
1 a b c
1 def
1 ddddddddd
1 d
[guest@localhost tmp]$ echo ${#IFS}
3
[guest@localhost tmp]$
круглые скобки делаются, чтобы IFS после них остался прежним

и что значит seq $1?
seq - это программа (man seq)
от слова sequence

когда находимся внутри функции bash, её аргументы обозначены, как в обычном скрипте, через $1, $2, $3 и так далее
то есть seq там использует первый аргумент, переданный в функцию

пример
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[guest@localhost tmp]$ f() { seq $1 $2; }
[guest@localhost tmp]$ f 10 20
10
11
12
13
14
15
16
17
18
19
20
[guest@localhost tmp]$ f() { seq $1 $2 $3; }
[guest@localhost tmp]$ f 10 15
10
11
12
13
14
15
[guest@localhost tmp]$ f 10 2 15
10
12
14
[guest@localhost tmp]$
1
0 / 0 / 0
Регистрация: 12.09.2010
Сообщений: 16
11.01.2011, 09:58  [ТС]
большое спасибо, все понятно
0
0 / 0 / 0
Регистрация: 12.09.2010
Сообщений: 16
13.01.2011, 21:19  [ТС]
скажите пожалуйста еще что такое ${#L}
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
14.01.2011, 02:53
man bash
${#parameter}
Parameter length. The length in characters of the value of parameter
is substituted. If parameter is * or @, the value substituted is the
number of positional parameters. If parameter is an array name sub‐
scripted by * or @, the value substituted is the number of elements
in the array.
кстати, когда набираешь man bash, там можешь нажать h и появится help, в котором можно узнать, как вести поиск по содержимому
например /param.*\}$ выдаст это дело
1
0 / 0 / 0
Регистрация: 12.09.2010
Сообщений: 16
14.01.2011, 08:40  [ТС]
спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2011, 08:40
Помогаю со студенческими работами здесь

Выравнивание текста в Label по правому краю
Подскажите как сделать чтобы label когда в нем текст он уходил влево а не вправо. Если он уходит вправо то вылезает за форму.

Выравнивание по правому краю введенного текста
Может кто подсказать, правильно ли сделал? Произвести выравнивание по правому краю введенного текста, для чего к каждой строке...

Произвести выравнивание по правому краю введенного текста
помогите пожалуйста!!!! срочно надо!! задача №1. Произвести выравнивание по правому краю введенного текста, для чего к каждой...

Мне нужно сделать программу -выравнивание текста по ширине,левому,правому краю,центру
Мне нужно сделать программу -выравнивание текста по ширине,левому,правому краю,центру. Как сделать выбор? Например ввожу текст потом...

Выравнивание по правому краю
Вообщем есть форма поиска на сайте, мне нужно, чтобы она была справа, но ничего не получается. Делаю вот так: Сам код: &lt;div...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru