LINUX.ORG.RU

Поиск и изменения текста в нутри файлов.

 


0

1

Я часто пользуюсь такой командой, которая позволяет открывать все html файлы, найти там нужный текст и изменить его:

find /var/www -type f -iname '*.html' -exec sed -i -e 's|Ищем текст|Заменяем на|g' '{}' \;

Сейчас задача немного усложнилась. Я имею дату, такого формата.: «start»:«04.09.2017 09:55:03»

Мне нужно поменять местами дату, месяц, и год, то есть должно получится так: «start»:«2017.09.04 09:55:03»

Искать нужно по такой маске «start»:«*.*.* 09:55:03» т.к. в файлах есть схожие данные

Подскажите пожулйста как это сделать.

Ответ на: комментарий от ashot

Почему-то не меняет местами. *.json файлы примерно такого содержания:

{"start":"24.09.2017 18:09:34","ip":"178.65.111.11","info":"inf"},{"starting":"24.09.2017 18:39:58","ip":"178.65.111.32","info":"inf"}

Консоль:

find ./ -type f -iname '*.json' -exec sed -i -e 's|\(\"start\":\"\)\([0-9]\+\).\([0-9]\+\).\([0-9]\+\)\( [0-9]\+:[0-9]\+:\"[0-9]\+\"\)|\1\4.\3.\2\5|g' '{}' \;

Dima85 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.