Можете ли вы поставить перед каждой строкой, написанной с помощью tee, текущую дату и время?

1070
user2917346

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

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

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

4

1 ответ на вопрос

3
grawity

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

тест $ echo | Т.С. 02 февраля 13:17:27 тест 

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

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.)

Похожие вопросы