Spec-Zone.ru › Fish 3.7

string-shorten - укорачивание строк до заданной ширины с многоточием

Краткое описание

string shorten [(-c | --char) CHARS] [(-m | --max) INTEGER]
               [-N | --no-newline] [-l | --left] [-q | --quiet] [STRING ...]

Описание

string shorten обрезает каждую СТРОКУ до заданной ширины видимого текста и добавляет многоточие, чтобы указать на это. «Видимая ширина» — это ширина всех видимых символов, суммированная вместе, за исключением управляющих последовательностей и с учётом fish_emoji_width и fish_ambiguous_width. Это количество столбцов в терминале, занимаемых СТРОКОЙ.

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

Если используется -m или --max, обрезка выполняется по заданной ширине. В противном случае используется наименьшая ненулевая ширина всех входных строк. Максимальное значение 0 означает, что укорачивание не выполняется, все СТРОКИ выводятся как есть.

Если используется -N или --no-newline, используется только первая строка (или последняя строка с --left) каждой СТРОКИ, и добавляется многоточие, если она была многострочной. Это работает только для СТРОК, переданных в качестве аргументов; несколько строк, вводимых со стандартного ввода, будут интерпретироваться как отдельные СТРОКИ.

Если используется -c или --char, добавляется СИМВОЛ вместо многоточия. Он также может быть пустым или содержать более одного символа.

Если используется -l или --left, текст удаляется слева, то есть выводятся самые длинные суффикс строки, которые помещаются в заданную ширину. С --no-newline это будет последняя строка вместо первой.

Если используется -q или --quiet, string shorten выполняется только для возвращаемого значения — если что-то было укорочено, возвращается 0, иначе 1.

По умолчанию используется многоточие …. Если fish считает, что ваша система неспособна из-за локали, используется ... вместо него.

Возвращаемое значение 0, если произошло любое укорачивание, 1 в противном случае.

Примеры

>_ string shorten foo foobar
# No width was given, we infer, and "foo" is the shortest.
foo
fo…

>_ string shorten --char="..." foo foobar
# The target width is 3 because of "foo",
# and our ellipsis is 3 too, so we can't really show anything.
# This is the default ellipsis if your locale doesn't allow "…".
foo
...

>_ string shorten --char="" --max 4 abcdef 123456
# Leaving the char empty makes us not add an ellipsis
# So this truncates at 4 columns:
abcd
1234

>_ touch "a multiline"\n"file"
>_ for file in *; string shorten -N -- $file; end
# Shorten the multiline file so we only show one line per file:
a multiline…

>_ ss -p | string shorten -m$COLUMNS -c ""
# `ss` from Linux' iproute2 shows socket information, but prints extremely long lines.
# This shortens input so it fits on the screen without overflowing lines.

>_ git branch | string match -rg '^\* (.*)' | string shorten -m20
# Take the current git branch and shorten it at 20 columns.
# Here the branch is "builtin-path-with-expand"
builtin-path-with-e…

>_ git branch | string match -rg '^\* (.*)' | string shorten -m20 --left
# Taking 20 columns from the right instead:
…in-path-with-expand

См. также

  • string’s pad подкоманда выполняет обратную операцию по отношению к этой команде, добавляя отступы до определённой ширины.
  • Команда printf может выполнять простую вставку пробелов, например, printf %10s\n работает так же, как string pad -w10.
  • string length с параметром --visible можно использовать для отображения ширины, которую считает fish.

© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.6/cmds/string-shorten.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API