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