Saya punya banyak file HTML berisi tanggal dengan format July 29th, 2011
Saya ingin mengubah format tanggal July 29th, 2011
menjadi 20110729
, December 9th, 2010
ke 20101209
, dll.
Saya pikir sed
mungkin berhasil tetapi masih tidak dapat menemukan solusi karena urutan tidak langsungnya.
text-processing
sed
Najib-botak Chin
sumber
sumber
Jawaban:
Hal semacam ini jauh lebih sulit daripada seharusnya dengan kebanyakan alat.
awk
Modul POSIX GNU dan Perl keduanya memberi Andastrftime()
, tapi bukanstrptime()
, yang Anda inginkan.Bagaimanapun, masih cukup mudah dengan Perl ...
Jelas ada lebih dari itu, karena Anda benar-benar ingin mengonversi HTML. Jika Anda bisa mengetahui regex dengan sed yang akan bekerja untuk menemukan string tanggal, Anda harus dapat melakukan sesuatu yang sangat mirip dengan Perl.
sumber
Date::Manip
modul? ... Perl saya memberi saya kesalahan, "Tidak dapat menemukan Date / Manip.pm di @INC ..." . Apakah ini modul tambahan yang perlu saya instal? ... Saya menggunakan perl, v5.10.1perl-Date-Manip
tetapi nama Anda akan berbeda-beda. Anda juga bisa menggunakannyacpan
.libdate-manip-perl
.... @Steven Pritchard: Ini adalah solusi yang bagus ... Terima kasih.July 29th, 2011
bukan format yang dikenali (July 29, 2011
berfungsi), dan Anda harus meletakkan cukup banyak shell dan infrastruktur sed / awk di sekitarnya.