2017-02-14 41 views
0

Например, у меня есть файл build.log, каждая строка выглядит так:Программирование оболочки: как вырезать из головы каждой линии, чтобы вставить в конец строки?

[2017-02-13 16:37:41.123456] [warning] [1743] [mysource/impl.cpp:25] Syntax warning ... 

Мне нужно, чтобы преобразовать его формат, чтобы быть похожим на это:

[warning] [1743] [mysource/impl.cpp:25] Syntax warning ...[2017-02-13 16:37:41.123456] 

Так что мой вопрос, как вырезать ведущую временную метку в течение первого [] и вставить в конец строки?

Как это сделать bash/sed/awk (в любом случае)? Благодарю.

+1

Престола [Что вы должны делать, когда кто-то ответит на ваш вопрос] (http://stackoverflow.com/help/someone-answers), перед тем как задавать последующие новые вопросы. – Inian

ответ

2

Попробуйте что-то вроде:

echo "[2017-02-13 16:37:41.123456] [warning] [1743] [mysource/impl.cpp:25] Syntax warning " | awk -F" " '{for(i=3;i<=NF;++i)printf ("%s ", $i); printf("%s %s\n", $1, $2)}'