поиск текстового файла гггг / мм / дд и замена на гггг-мм-дд

Примерно так:

vimdiff <(find /home/masi -printf "%P %u:%g %m\n" | sort) <(find /home/masi_backup -printf "%P %u:%g %m\n" | sort)

(это дает имена без ведущего / home / masi или / home / masi_backup , владелец пользователя и группы, а также разрешения - последние не упоминались в вопросе, но кажутся полезными, отбросьте % m , если они вам не нужны).

0
20.04.2018, 08:30
2 ответа

Вы можете использовать sedдля этого

$ sed -E 's|([0-9]{4})/([0-9]{2})/([0-9]{2})|\1-\2-\3|g' file

Попробуйте.

Чтобы отредактировать файл на месте, в macOS или FreeBSD добавьте параметр -i ''. Большинству других sedреализаций требуется только -i, чтобы(-i.backработал для обоих и сохранял оригинал с расширением .back). В системах, где sedне поддерживает редактирование места -, вы можете использовать perl -pi -eвместо sed -E(, который вдохновил теsed -i).

2
28.04.2021, 23:48

Извините, это не сработало. Текст без изменений

Но это работало нормально...

perl -pi -e 's|([0-9]{4})/([0-9]{2})/([0-9]{2})|\1-\2-\3|g' file
-1
28.04.2021, 23:48

Теги

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