4

Я использую команду 'tee' для записи результатов длинной команды bash в файл.

Может ли файл, который я посылаю с tee, каким-либо образом ставить перед каждой строкой метку времени, когда строка была написана? Я ищу решение, в котором каждая строка будет иметь разное значение даты и времени ... не то же самое значение с префиксом в каждой строке.

Причина, по которой я этого хочу, заключается в том, что было бы очень полезно узнать, когда каждая строка была выпущена позже, когда я прочитал файл, чтобы понять, где были медленные области.

1 ответ1

3

Если tee не может что-то сделать, передайте это программе, которая это делает. У moreutils есть инструмент с именем ts , целью которого является именно это:

$ echo test | ts
Feb 02 13:17:27 test

Если вы хотите отметить все, использование должно быть очевидным:

myapp | ts | tee app.log

Возможны другие комбинации; например, чтобы отметить только время вывода на экран или только файл журнала:

myapp | tee app.log | ts
myapp | tee >(ts > app.log)
myapp | tee /dev/tty | ts > app.log
myapp | pee "ts > app.log" "cat"
myapp | pee "cat > app.log" "ts"

(Да, последний тоже из moreutils.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .