I have a file:
pablo tty8 Thu Nov 1 12:51:21 2012 still logged in (unknown tty8 Thu Nov 1 12:50:57 2012 - Thu Nov 1 12:51:21 2012 (00:00) pablo tty2 Thu Nov 1 12:50:39 2012 still logged in pablo tty7 Thu Nov 1 12:49:45 2012 - Thu Nov 1 12:50:56 2012 (00:01) (unknown tty7 Thu Nov 1 12:34:32 2012 - Thu Nov 1 12:49:45 2012 (00:15) I want to replace the file in the above date for a second. I want to print:
pablo tty8 1351770681 still logged in (unknown tty8 1351770657 - 1351770681 (00:00) pablo tty2 1351770639 still logged in pablo tty7 1351770585 - 1351770656 (00:01) (unknown tty7 1351769672 - 1351770585 (00:15) I tried this command:
gawk --posix 'function my() {"date -d \047"$0"\047 +%s" | getline b; gsub( /[A-Za-z]{3} [A-Za-z]{3} [0-9] ([0-9]{2}:){2}[0-9]{2} [0-9]{4}/,b );print} { my() }' file The above command does not work:
$ gawk --posix 'function my() > {"date -d \047"$0"\047 +%s" | getline b; > gsub( /[A-Za-z]{3} [A-Za-z]{3} [0-9] ([0-9]{2}:){2}[0-9]{2} [0-9]{4}/,b ); print} > { my() }' ta date: błędna data: `pablo tty8 Thu Nov 1 12:51:21 2012 still logged in ' pablo tty8 still logged in (unknown tty8 1351897200 - 1351897200 (00:00) date: błędna data: `pablo tty2 Thu Nov 1 12:50:39 2012 still logged in ' pablo tty2 1351897200 still logged in date: błędna data: `pablo tty7 Thu Nov 1 12:49:45 2012 - Thu Nov 1 12:50:56 2012 (00:01) ' pablo tty7 1351897200 - 1351897200 (00:01) (unknown tty7 1351897200 - 1351897200 (00:15) How to improve the above command?