Что касается более раннего ответа, мне нужно изменить формат даты с yyyy-mm-dd на yyyy/mm/dd.изменение формата даты в linux bash
я получил ответ:
sed -i '[email protected],\(....\)-\(..\)-\(..\) @,\1/\2/\3 @' /home/Documents/blah.csv
это прекрасно работает, только один экземпляр на одну строку. Однако одна строка может иметь многие из этих дат, как мне изменить команду sed, чтобы она выполнялась для каждого обнаруженного экземпляра (а не только для первого).
Пример документа:
2012-09-09,123143,2012-09-09,12837,2012-09-07,2131,2012-08-06,1237
#and many more lines like that.
после запуска патч в команду, я получаю это:
2012-09-09,123143,2012/09/09,12837,2012-09-07,2131,2012-08-06,1237
Он работает только на втором экземпляре дату, Как я заставить его работать на всех из них ?
Возможно, можно просто заменить '-' на'/'. Это будет идти с 'tr - - /' –
Вы можете добавить букву 'g' в качестве модификатора в команду sed, чтобы она выглядела * g * в каждой строке. Однако убедитесь, что все совпадения остаются правильными. Пример: 'sed -i @ match @ replacement @ g 'document' –
Да .. g работает .. но он всегда пропускает первый ... так что в основном я получаю это сейчас: 2012-09-09, 123143,2012/09/09,12837,2012/09/07,2131,2012/08/06,1237 – user2883071