Этот цикл будет отображать то, что я хочу сделать, но если я удалю echo
от него, он не будет на самом деле ничего удалять:Почему я не могу удалить несколько записей из Баш истории с этого цикла
history | grep ":[0-5][0-9] ls *$" | cut -c1-5 |
while read id; do
echo history -d $id
done
Я добавил отступы, чтобы сделать его более читаемым, но я запускаю его как однострочный из командной строки.
У меня есть HISTTIMEFORMAT
, поэтому grep находит секунды, за которыми следует ls
, за которым следует произвольное количество пробелов. По сути, он находит что-нибудь в истории, это всего лишь ls
.
Это использование bash 4.3.11
на Ubuntu 14.04.3 LTS
Хммм, ничто не работает. Хотя ваше объяснение о том, почему это не работает, кажется правдоподобным. –
О, право. Ранняя версия моей командной строки имела обратную сортировку, чтобы справиться с этим, но я не задал ее в своем вопросе. Он отлично работает, когда я это делаю. –
Хорошо :) Я удалил свой предыдущий комментарий, потому что я не был уверен, что достаточно проверил его. – chepner