Назад | Перейти на главную страницу

отступ для определенных частей вывода в bash

скажем, у меня есть следующий сценарий bash, который находит все ошибки. log дает им заголовок, а затем замыкает 5 строк под ним ..

#!/bin/bash
for ERR in `find -name "error.log"`;
do
    echo -e "---- LOG: $ERR ----";
    tail -n 5 $ERR;
done;

Я бы хотел, чтобы это было так:

---- LOG: foo/error.log ----
    [error ....]
    [error ....]
---- LOG: foo/error.log ----
    [error ....]
    [error ....]
---- LOG: foo/error.log ----
    [error ....]
    [error ....]

где tailРаздел 'd имеет отступ на некоторое количество символов (например, 4 или любой другой символ табуляции)

Как мне сделать отступ для вывода этого конкретного раздела?

Передайте команду хвоста через sed:

tail -n 5 $ERR | sed -e 's/^/    /'

Есть много способов. Можно просто пропустить sed или awk и добавить немного места.

cat syslog | sed -e 's/^/    /'
#
cat syslog | sed -e 's/^/\t/'