2014-12-23 3 views
1

У меня есть дата "12/12/2013" в файле, я хочу, чтобы она была заменена на MM/DD/YYYY буквально.Как заменить строку даты в файле?

файл

Date: 12/12/2013    Shipment 
Name: xxxx ................ 

я хочу это, как

Date: MM/DD/YYYY    Shipment 
Name: xxxx................ 
+0

Пожалуйста, обратите внимание: я не хочу сегодняшнюю дату здесь. Я просто хочу, чтобы вышеуказанное значение «12/12/2013» было изменено как «ММ/ДД/ГГГГ» –

ответ

0

Попробуйте это.

sed -i 's_12/12/2013_MM/DD/YYYY_' file name 

Else.

sed 's_12/12/2013_MM/DD/YYYY_' file name > filename 
+0

Дело в том, что есть и другие даты, и они также меняются. –

+0

@ user215827 Теперь у вас есть точная потребность? –

+0

Да, спасибо! В настоящее время на экране отображается, как сохранить его в том же файле? –

4

Попробуйте это (разделитель может быть любой символ, не ограничивается по умолчанию /; Здесь я использую @):

sed -i.bak '[email protected]:\s*12/12/[email protected]: MM/DD/[email protected]' file 

или

sed -i.bak '[email protected]/12/[email protected]/DD/[email protected]' file 

Основной скелет sed замещения: s///

+0

Я буквально хочу ММ/ДД/ГГГГ. –

+3

@AvinashRaj Он не разбирает даты, он заменяет одну жестко кодированную строку на другую. – Barmar

+0

Как это можно достичь, используя «12/12/2013» вместо @Date: \ s * 12/12/2013 ?? –

1
sed 's#[[:digit:]]\{2\}/[[:digit:]]\{2\}/[[:digit:]]\{4\}#MM/DD/YYYY#' 

матчей 2 цифры следует / следует 2 цифры и / и, наконец, 4 цифр, а затем заменить шаблон с MM/DD/YYYY

Смежные вопросы