У меня много дат во многих .txt файлах в формате 2016.10.27. Я хочу изменить точно только точки на дефисы во всех датах во всех файлах. Я хочу изменить их с помощью команд Linux bash, может быть, одной достаточно. Для этого мне нужно отредактировать все эти файлы и больше ничего не менять. Я предполагаю, что дата может быть заключена в любые символы, поэтому нет другого способа найти даты, кроме как по ее формату. Как я могу это сделать?

1 ответ1

0

Хорошо понял!

sed -i -E 's/([0-9]{4})\.([0-9]{2})\.([0-9]{2})/\1-\2-\3/g' *.txt

Кроме того, если дата имеет формат ДД.ММ.ГГГГ, чтобы изменить ее на формат ГГГГ-ММ-ДД, я использовал:

sed -i -E 's/([0-9]{2})\.([0-9]{2})\.([0-9]{4})/\3-\2-\1/g' *.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .