Как получить команды до отметок времени в выводе "history" в Bash?

Я нашел этот ответ об истории отметок времени для Bash.

Есть ли способ переставить вывод? Особенно

Number command time-stamp

скорее, чем

Number time-stamp command

1 ответ

Решение

Вы можете обработать вывод history встроенный. Сначала подготовьте HISTTIMEFORMAT в соответствии с ответом, на который вы ссылаетесь:

export HISTTIMEFORMAT="%d.%m.%y %T "

Чтобы получить желаемый результат, вызовите:

history | awk '{ printf "%s\t",$1; for(i=4; i<=NF; i++) printf "%s",$i OFS; printf "\t%s %s\n",$2,$3 }'

Если вы перезаписать history встроенный с функцией:

history() { builtin history | awk '{ printf "%s\t",$1; for(i=4; i<=NF; i++) printf "%s",$i OFS; printf "\t%s %s\n",$2,$3 }'; }

тогда достаточно написать history чтобы получить то, что вы хотите.

Примечание: начальные пробелы и форматирование столбцов с нуля history выход теряется. Так как командное поле не имеет фиксированной длины, располагать его посередине не лучшая идея. Я специально разделил поля табуляцией (вместо пробелов), чтобы сделать вывод более читабельным. Если вы предпочитаете пробелы, замените \t в моем коде с (пространство).

Другие вопросы по тегам