sort output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sort output
# 1  
Old 01-10-2008
sort output

this one is a bit tricky:


Code:
host16 /etc/passwd changed Thu Jan 3 16:39:48
host3 /etc/group changed Thu Jan 3 16:39:48
host2 /etc/services changed Thu Jan 3 16:39:48
host10 /etc/group changed Thu Jan 10 09:59:01
host11 /etc/group changed Thu Jan 3 18:55:38
host17 /etc/group changed Thu Jan 3 17:45:41
host3 /etc/security/user changed Fri Dec 21 12:25:23
host6 /etc/group changed Thu Dec 27 10:34:27
host7 /etc/security/user changed Thu Dec 27 10:34:27
host8 /etc/passwd changed Thu Dec 27 11:50:40
host5 /etc/passwd changed Thu Dec 27 12:00:57
host1 /etc/passwd changed Thu Dec 27 12:05:58
host3 /etc/passwd changed Thu Dec 27 12:13:29
host4 /etc/passwd changed Thu Dec 27 12:28:13
host3 /etc/passwd changed Thu Dec 27 12:47:29
host2 /etc/security/user changed Tue Jan 8 13:15:02


I have to sort this output per date, newest on the top
should work for all months

thanks in advance

funksen
# 2  
Old 01-10-2008
This works:

Code:
perl -MDate::Parse -e 'print sort{$a=~/ changed (.*)/;$x=$1;$b=~/ changed (.*)/;$y=$1;str2time($y)<=>str2time($x)}<>' < filename

# 3  
Old 01-10-2008
thanks a lot tytalus,

I get the following error when I run your script:

Can't locate Date/Parse.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .).
BEGIN failed--compilation aborted.



do I have to install something specific??
# 4  
Old 01-10-2008
I installed every pearl date package that I've found, works really great now, respect for this oneliner Smilie thanks again!
# 5  
Old 01-10-2008
yep - it's in some distros - not in others...

have a look at CPAN:

Date::Parse - Parse date strings into time values - search.cpan.org
# 6  
Old 01-10-2008
nawk -f fun.awk myFile.txt | sort -nr | cut -d ' ' -f2-

fun.awk:
Code:
BEGIN {
  monthList="JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC"
  n=split(monthList, monthA, FS)
  for(i=1; i<=n; i++)
    monthA[monthA[i]]=i
}
{
  t=$NF
  gsub("[^0-9]", "", t)
  printf("%02d%02d%06d %s\n", monthA[toupper($(NF-2))], $(NF-1), t, $0)
}

# 7  
Old 01-11-2008
thank you too vgersh99,

but I can't get your script running, it sorts the output like this:

host3 /etc/passwd changed Thu Dec 27 12:47:29
host4 /etc/passwd changed Thu Dec 27 12:28:13
host3 /etc/passwd changed Thu Dec 27 12:13:29
host1 /etc/passwd changed Thu Dec 27 12:05:58
host5 /etc/passwd changed Thu Dec 27 12:00:57
host8 /etc/passwd changed Thu Dec 27 11:50:40
host7 /etc/security/user changed Thu Dec 27 10:34:27
host6 /etc/group changed Thu Dec 27 10:34:27
host3 /etc/security/user changed Fri Dec 21 12:25:23
host10 /etc/group changed Thu Jan 10 09:59:01
host2 /etc/security/user changed Tue Jan 8 13:15:02
host11 /etc/group changed Thu Jan 3 18:55:38
host17 /etc/group changed Thu Jan 3 17:45:41
host3 /etc/group changed Thu Jan 3 16:39:48
host2 /etc/services changed Thu Jan 3 16:39:48
host16 /etc/passwd changed Thu Jan 3 16:39:48


it sorts the time for each day correctly, but not the whole output


I don't have a nawk binary on my linux bb server, but on AIX nawk has the same cksum as awk, so I expected it's the same

tried on fedora6 and rhel4


cheers

funksen
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Any way to sort ps output based on STIME?

Hi, This is one of the thing that am looking for when I post the question on the ps wrapper. It has since been closed as it has taken me too long to post an example. I have replaced some of the original content of the ps output. uname -a = SunOS <hostname> 5.11 11.3 sun4v sparc sun4v ... (1 Reply)
Discussion started by: newbie_01
1 Replies

2. Shell Programming and Scripting

Need to sort an output

with a command i get a long list (example) and the entrys are intended. DName=AAAAA DName=AAAAA lba=838,860,800 label=ftw_1 DName=BBBBB DName=BBBBB lba=838,860,800 label=ftw_2 DName=CCCCC ... (3 Replies)
Discussion started by: Serano
3 Replies

3. UNIX for Dummies Questions & Answers

Ls output sort on multiple column

Hi All, I have one requirement, where I need to have output of ls -l command sorted on 1) first on filename 2) last modified time ( descending ) - latest change first. I am not able to figure out how to do it.. Also I dont have a way to change Date display for ls -ltr command.. I am... (5 Replies)
Discussion started by: freakabhi
5 Replies

4. Shell Programming and Scripting

sort ps output in seconds

Now I van sort in hour-minute-second. I need in seconds ps -eo pid,etime,args --sort=start_time | grep bash Sample Output 15064 03:23 -bash I need in 03:23 in seconds (1 Reply)
Discussion started by: anil510
1 Replies

5. Shell Programming and Scripting

Sort and output to different files

Hi all! I have a comma delimited file and I'm sorting it based on fields 6, 8 and 10. The following does the job: sort -t, -nk6,10 unsorted.txt -o sorted.txt What I need to do now is to write every row containing same values on fields 6, 8 and 10 to a different file. Any ideas on how to do... (2 Replies)
Discussion started by: Tr0cken
2 Replies

6. Shell Programming and Scripting

Sort output is different with Corn

Hi, I am sorting a file, but getting different output with crontab. input file-file z Z x X y Y when I sort manually sort file x X y Y z Z (4 Replies)
Discussion started by: suresh3566
4 Replies

7. UNIX for Dummies Questions & Answers

Sort fdupes output by size

Hi I have a file that is a fdupes output. I'd like to sort the duplicated file by size. The format file is the following: 5996544 bytes each: /path1/to/file1.jpg /path2/to/file1.jpg /pathx/to/file1.jpg ... random number of lines /path999/to/file1.jpg 591910 bytes each:... (2 Replies)
Discussion started by: AdminLew
2 Replies

8. UNIX for Dummies Questions & Answers

How to sort output from find from oldest to newest?

Hi, How do I sort the output of find to provide a listing of files from oldest to newest? For example, if I do a find /tmp -type f -print I want the output to be sorted in the order of the oldest to the newest file. Thanks in advance. (2 Replies)
Discussion started by: newbie_01
2 Replies

9. UNIX for Dummies Questions & Answers

how to sort and arrange an output

ok so I have a list of names that end in either ot,om,oa. So for example DETOT MANOA DET0M DET0A MANOT SEAOT etc... I want to be able to group this list by OT, OM, OA and have the output have some headers like this and be alphabatized and if possible be in colums instead of like... (10 Replies)
Discussion started by: llsmr777
10 Replies

10. UNIX for Dummies Questions & Answers

Sort - only one field appears in output?

I'm running against a file with 1008 records like this, all beginning '4760 Slave': 4760 Slave,7,3607 ,GL ,200605,11320024 , ,GBP ,X00033 ,AI80190 ... (1 Reply)
Discussion started by: miwinter
1 Replies
Login or Register to Ask a Question