How do i collect date and time for list of files in a directory using AWK Command
$ ls -l
total 304
drwxr-xr-x 2 training staff 512 Jun 01 11:28 SNMP1
drwxr-xr-x 2 training staff 512 Jun 01 11:28 SNMP2
-rw-r--r-- 1 training staff 42 May 25 15:33 a
-rw-r--r-- 1 training staff 8 May 25 15:33 b
-rw-r--r-- 1 training staff 72 Jun 01 11:15 f
-rw-r--r-- 1 training staff 930 May 21 11:15 ff
-rw-r--r-- 1 training staff 72546 Apr 28 13:05 ff2
-rw-r--r-- 1 training staff 34 May 24 14:45 file
-rwxrwxrwx 1 training staff 62 May 24 16:18 s
-rwxr-xr-x 1 training staff 40 May 24 16:17 ss
drwxr-xr-x 2 training staff 512 May 09 17:50 tmp
drwxr-xr-x 2 training staff 512 Jun 01 11:28 tmp1
-rw-r--r-- 1 training staff 0 May 22 12:02 x a
$ ls -l | awk ' NF > 2 { print $6,$7,$8 } '
Jun 01 11:28
Jun 01 11:28
May 25 15:33
May 25 15:33
Jun 01 11:15
May 21 11:15
Apr 28 13:05
May 24 14:45
May 24 16:18
May 24 16:17
May 09 17:50
Jun 01 11:28
May 22 12:02
Laknar,
Be advised that if the file is more than six months old,
in place of time it will be the year:
-r--r--r-- 1 mmzes sdev 23093 Feb 20 11:30 abc.sh
-rw-r----- 1 mmzes sdev 1372 Jan 19 13:21 a
-rw-r----- 1 mmzes sdev 683 Jan 19 13:21 b
-r-xr-xr-x 1 mmzes sdev 4341 Jan 17 14:43 file1
-r--r--r-- 1 mmzes sdev 3055 Oct 31 2006 file2
-r-xr-xr-x 1 mmzes sdev 11350 Aug 17 2006 ab.sh
-r--r--r-- 1 mmzes sdev 7208 Jul 27 2006 st.sh
-r-xr-xr-x 1 mmzes sdev 8492 Jul 18 2006 ad.txt
To get around ls -l date formatting try a perl shell function maybe like this:
#!/bin/ksh
filedate()
{
perl -e '
@months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
$mtime = (stat $ARGV[0])[9];
($sec, $min, $hr, $mday, $mon, $yr, $wday, $yday, $dntcare) =
localtime($mtime);
printf "%s %02d %d %02d:%02d:%02d\n",
$months[$mon], $mday, $yr + 1900, $hr, $min, $sec;
' "$1"
}
for file in $(ls $@ )
do
filedate "$file"
done
you can also use the stat command to get file date/time information , only if your system has it.