@nallion

Как распарсить файл?

Доброго времени суток!
Есть текстовый файл с логом бинда, нужно почистить его от мусора
Выглядит примерно так:

16-May-2019 12:24:46.733 192.168.60.223#49429 top-fwz1.mail.ru

Хотелось бы привести в такой вид:
16-May-2019 12:24 192.168.60.223 top-fwz1.mail.ru

Помогите с написанием регулярного выражения...
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
@xibir
perl -ne '/([^ ]+) (\d+:\d+)[^ ]+ (\d+\.\d+\.\d+\.\d+)[^ ]+ (.+)/; print "$1 $2 $3 $4\n"' test.txt
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега bash
build engineer
awk -F "[:# ]" '{print $1" "$2":"$3" "$5" "$7}' file.log
Ответ написан
@Drill
SED:
sed -i -e "s/:[0-9]*\.[0-9]*//" -e "s/#[0-9]*//" /path/to/file


BASH:
re='(.*):[0-9.]+[0-9]+(.*)#[0-9]+(.*)'
while read LINE; do
    while [[ $LINE =~ $re ]]; do
        LINE=${BASH_REMATCH[1]}${BASH_REMATCH[2]}${BASH_REMATCH[3]}
        echo $LINE >>  /path/to/new_file
    done
done < /path/to/old_file
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
23 мая 2019, в 04:22
500 руб./в час
22 мая 2019, в 23:03
15000 руб./за проект
22 мая 2019, в 22:44
1000 руб./за проект