Моя история «загрязнена» некоторыми конкретными чертами, которые имеют опечатки и тому подобное. Например: мне часто приходится подключаться к определенному серверу следующим образом:

ssh foo-bar@domain.tld
> Connects succesfully

Но я также иногда делаю опечатку:

ssh bar-foo@domain.tld
> Permission denied

Поскольку я полагаюсь на историю, эта опечатка дублируется несколько раз:

cat .zsh_history | grep bar-foo@domain.tld
> : 1510301683:0;ssh bar-foo@domain.tld
> : 1511166682:0;ssh bar-foo@domain.tld
> : 1511193552:0;ssh bar-foo@domain.tld
> : 1512730972:0;ssh bar-foo@domain.tld
> : 1516368993:0;ssh bar-foo@domain.tld
> : 1516802690:0;ssh bar-foo@domain.tld
> : 1519633368:0;ssh bar-foo@domain.tld

Есть ли простой способ очистить мою историю чисто по результатам команды grep ? (или, может быть, есть другое, более умное решение?)

Обновить:

Обратите внимание: я не ищу способ удалить строку x из истории; Я знаю, что есть много статей, которые освещают это. Я просто ищу (просто?) способ удалить все строки, содержащие строку y .

1 ответ1

0

Вы можете использовать эту команду, чтобы правильно удалить все строки со строкой в истории:

sed -i '/string/d' .bash_history

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .