Sorting a list


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sorting a list
# 1  
Old 09-01-2013
Sorting a list

I am trying to sort a list

If you walk through the list, every you have passed both website1 and website2 and get back to website1, the last lines should be collected into one line and the process should start again.

The following:
Code:
http://www.website1.com
http://www.website1.com
http://www.website2.com
http://www.website2.com
http://www.website1.com
http://www.website2.com
http://www.website1.com
http://www.website1.com
http://www.website2.com

should become:
Code:
http://www.website1.com;http://www.website1.com;http://www.website2.com;http://www.website2.com
http://www.website1.com;http://www.website2.com
http://www.website1.com;http://www.website1.com;http://www.website2.com

# 2  
Old 09-01-2013
I wouldn't call this sorting. But the following brute force awk script seems to do what your want:
Code:
awk '
NR == 1 {
        l1 = $0
        printf("%s", $0)
        combine = 1
        next
}
l1 == $0 {
        printf("%s%s", combine ? ";" : "\n", $0)
        combine = 1
        next
}
{       printf(";%s", $0)
        combine = 0
}
END {   print ""
}' file

As always, if you're using a Solaris/SunOS system, use /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk instead of awk.
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 09-02-2013
perl

Code:
my @arr;
my $hit2=0;
while(<DATA>){
 chomp;
 if(/website1/ && scalar @arr && $hit2){
	print join(";",@arr);
	print "\n";
	$#arr=-1;
	$hit2=0;
 }
 elsif(/website2/){
	$hit2=1;
 }
 push @arr,$_;
}
print join(";",@arr) if scalar @arr;
__DATA__
http://www.website1.com
http://www.website1.com
http://www.website2.com
http://www.website2.com
http://www.website1.com
http://www.website2.com
http://www.website1.com
http://www.website1.com
http://www.website2.com


Last edited by Don Cragun; 09-02-2013 at 05:49 AM.. Reason: Add CODE tags to make indentation visible.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

List the files after sorting based on file content

Hi, I have two pipe separated files as below: head -3 file1.txt "HD"|"Nov 11 2016 4:08AM"|"0000000018" "DT"|"240350264"|"56432" "DT"|"240350264"|"56432" head -3 file2.txt "HD"|"Nov 15 2016 2:18AM"|"0000000019" "DT"|"240350264"|"56432" "DT"|"240350264"|"56432" I want to list the... (6 Replies)
Discussion started by: Prasannag87
6 Replies

2. Shell Programming and Scripting

Sorting with list, - 2 lists next to 200

Hi I was wondering if anyone knew the best way to have files displayed by list so that they were in numerical order? the problem I am having is I am using the ls and the head command to sort a group of 500 files into manageable 133 file bunches and transfer them to another directory were they will... (4 Replies)
Discussion started by: Paul Walker
4 Replies

3. Shell Programming and Scripting

Sorting a list of words one per line by their ending

Hello, My OS is Windows and therefore DOS. Hence I have no access to Unix tools. I am trying to sort a file in Urdu by the character by which it ends. Each word is on a separate line. As input, an example in English would help: fruit banana apple pear house I need the sort to be on the... (5 Replies)
Discussion started by: gimley
5 Replies

4. Shell Programming and Scripting

Perl: Sorting a hash value that is a list.

Hi Folks I am very much a newbie at perl but picking it up and I'm hoping you can help. I have a file input that details all the /etc/group files in our enterprise in the following format: "<host>:<group>:<gid>:<users>" I want to parse this data display it as the following:... (9 Replies)
Discussion started by: g_string
9 Replies

5. UNIX for Dummies Questions & Answers

Sorting a list

n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run1.cmd n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run1.cmd n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run1.cmd n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run1.cmd n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run1.cmd n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run2.cmd... (13 Replies)
Discussion started by: kristinu
13 Replies

6. Shell Programming and Scripting

Sorting a list of filenames but keeping the path information.

Hi All I've googled around for this and can't see a way of doing it. I have a file that contains a number of records that are layed out something like the following. /path/to/directory/that/contains/a/file/I/need/filename.pdf The path itself can vary both in terms of the names and the... (7 Replies)
Discussion started by: Bashingaway
7 Replies

7. Shell Programming and Scripting

Splitting a list @list by space delimiter so i can access it by using $list[0 ..1..2]

EDIT : This is for perl @data2 = grep(/$data/, @list_now); This gives me @data2 as Printing data2 11 testzone1 running /zones/testzone1 ***-*****-****-*****-***** native shared But I really cant access data2 by its individual elements. $data2 is the entire list, while $data,2,3...... (1 Reply)
Discussion started by: shriyer
1 Replies

8. UNIX for Dummies Questions & Answers

Sorting list of files per date column

Hi all, I have a pecular issue in sorting these files (not an ls -lrt) in Solaris environment. All the below files are modified on November 4th, but I want to sort these files as per date (eg: 01May07_1623 = ddmmmyy_hhmm) Nov 4 18:27 SONYELEC00.GI22973.01May07_1623.gpg Nov 4 18:27... (10 Replies)
Discussion started by: shivaastrogun
10 Replies

9. UNIX for Advanced & Expert Users

help with sorting sequence in Unix C:sort -t ':' +0 -1 -n +1 -2 +2 -3 -o list list

Hi List is 000|2008-07-17|556543|RTJ|35-RTGJ|EYT 465|2008-11-10|567789|GHJ|45-DGHH|ETU 533|2008-09-06|567789|GHJ|45-DGHH|ETU How does it do it? sort -t ':' +0 -1 -n +1 -2 +2 -3 -o list list (6 Replies)
Discussion started by: gurvinder
6 Replies

10. Programming

Sorting in C++..

Hi, I need to do a sorting of 2 arrays. One array contains the values of both integer and character and other array can be anything. For example: Array={'1L','2C','NULL','23L','11L','4C','10L','9C'} Array= {'01-02-13-1x','02-11-23-3s','00-12-13-5f','NULL','22k',} If any of these arrays... (6 Replies)
Discussion started by: ronix007
6 Replies
Login or Register to Ask a Question