Назад | Перейти на главную страницу

Удаление истории или номеров строк из файла истории ZSH

По какой-то причине я получаю эти нечетные номера строк или какие-то номера истории в моем ~/.zsh_history файл так:

: 1266694881:0;rake db:migrate

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

rake db:migrate

Есть ли у кого-нибудь предложения, как это решить? я обнаружил setopt EXTENDED_HISTORY но, похоже, это не так уж важно.

Пытаться:

unsetopt EXTENDED_HISTORY

Цифры - это количество секунд, прошедших с эпохи Unix, когда команда была запущена, и продолжительность выполнения команды в секундах.

Редактировать:

Я забыл упомянуть, что вам следует использовать fc команда для взаимодействия с историей вместо анализа файла истории. На это есть как минимум пара причин. Во-первых, в файле истории нет записей в памяти до тех пор, пока вы не выйдете из оболочки, не будет достигнуто пороговое значение или вы явно не запишете его с помощью fc -AI команда (я верю). Во-вторых, можно уйти EXTENDED_HISTORY включены и по-прежнему взаимодействуют с записями, не удаляя эту информацию. Если он выключен, то когда вы это сделаете fc -ld, оболочка использует время запуска оболочки в качестве метки времени для команд в истории до этого времени. Если он выключен, он запоминает фактическую дату и время (числа, которые вы видите в файле).

Видеть man zshbuiltins.

Перечислите самые последние записи:

fc -l

Перечислите их без номеров команд:

fc -ln

Перечислите 20 последних команд без номеров команд:

fc -ln -20

Включите метку времени и распечатайте только самую последнюю команду:

fc -lnd -1

Показать все команды (в пределах последних 50), которые включают строку "setop" (показывает setopt и unsetopt):

fc -l -m '*setopt*' -50