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