Как получить команды до отметок времени в выводе "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 в моем коде с (пространство).