2009-08-22 1 views
1

Довольно часто я с помощью моей истории оболочки bash обнаружил старые команды, пути к файлам и т. Д. Определив интересующий нас номер истории, мне хотелось бы увидеть несколько строк контекста с обеих сторон, т. Е. Просмотреть подмножество строк истории. Например:Как выбрать подмножество строк из истории в bash?

$ history | grep ifconfig 

8408 ifconfig eth0 
8572 sudo ifconfig eth0 down 

Я хотел бы посмотреть на 5 строк или так обе стороны от линии 8572. Очевидно, зная номер строки, что я могу пролистать историю с less, но это, кажется, очень глупо. Насколько я могу судить, manpage, похоже, тоже не имеет такой информации.

Есть ли простой способ получить произвольные строки истории в bash?

+0

принадлежит на суперпользователя ?! –

+0

@ Miky D: Я так не думаю - это действительно часть моей IDE. Вопросы Eclipse, похоже, достаточно приветствуются здесь. –

ответ

4

Параметр grep -C предоставляет контекст. Попробуйте:

$ history | grep -C 5 ifconfig 
1

тип ctrl-r, затем некоторые символы (интерактивный поиск). Подробнее information here.

1
history | grep ifconfig -A5 -B5 

A = количество строк после матча найденных Grep B = количество линий до матча, найденного Grep Вы можете также изменить количество строк от 5 до любого числа, которое вы хотите.

2

Если вы хотите, чтобы видеть это для конкретных номеров строк, вы можете также использовать что-то вроде этого

history | head -n 120 | tail -n 5 

Пример печатает линии 116 через 120.