Hi,
I have several tens of files containing SQL code with lines of the form:
INSERT INTO tablex (var1, var2, var3, var4, var5) VALUES (1,'03/20/08
00:00:00','AM',4,NULL,'some text',NULL);
The time stamp string may consist of both date and time, or only date,
but the date is always MM/DD/YY. I'd like to reformat the date as
YYYY-MM-DD, so the date in the example above should be "2008-03-20".
There are 2 issues I'm struggling with: 1) years may be in the 20th or
21st century, so that every year starting with 0 should belong in the
current century, and the rest in the previous, and 2) time stamps may be
present in more than one variable (i.e. the var's above). gensub()
seemed the way to go:
awk --re-interval '{
sub(/ end,/, " ending,")
if ($0 ~ /[[:digit:]]{2}\/[[:digit:]]{2}\/[[:digit:]]{2}/) {
$0=gensub(/([[:digit:]]{2})\/([[:digit:]]{2})\/([[:digit:]]{2})/,
"\\3/\\2/\\1", "g")
}
print
}'
This of course only rearranges the date pieces, but doesn't add the
century information. The sub() is just to show that other operations
are needed before printing every line. Any suggestions on how to
proceed in this case?
Cheers,
--
Seb


|