Я думаю:
ls ./* | cut -d '.' -f 1,2,3 | sort -u
доставит вас туда, по сути, это перечисляет содержимое каталога, а затем обрезает все, что находится после третьего '.' а затем сортирует строки и удаляет дубликаты. Конечным результатом будет список abc.sh.ID.
Если вы хотите прокрутить этот новый список и выполнить 'ls [line] *', чтобы получить также datetimestamp.id.log, в результате содержимое каталога будет сгруппировано по идентификатору.
Чтобы оболочка zsh
выполняла подстановку команд для значения PS1
, установите параметр оболочки PROMPT_SUBST
:
set -o PROMPT_SUBST
PS1='$(pwd) > '
Обратите внимание, что нет необходимости export
использовать переменную PS1
.
Причина, по которой параметр оболочки PROMPT_SUBST
не установлен по умолчанию, вероятно, заключается в том, что оболочка zsh
уже имеет богатый синтаксис для расширений подсказок.
Например, ваш пример можно заменить на
PS1='%/ > '
Дополнительную информацию об этом см. в разделе «РАСШИРЕНИЕ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ПОДСКАЗОК» в руководстве zshmisc
по вашей системе.
При использовании
PS1="$(pwd) > "
значение, присвоенное переменной PS1
, расширяется перед выполнением присвоения. Вот почему он не меняется, когда вы меняете каталоги.