@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

Помогите с написанием регулярного выражения...
  • Вопрос задан
  • 410 просмотров
Решения вопроса 1
perl -ne '/([^ ]+) (\d+:\d+)[^ ]+ (\d+\.\d+\.\d+\.\d+)[^ ]+ (.+)/; print "$1 $2 $3 $4\n"' test.txt
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега bash
software 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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