Sort references


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Sort references
# 1  
Old 05-28-2014
Sort references

I have the following entries and want to perform a sort.
Each entry is separated by a newline, however each line should not be considired seperate. Maybe an awk program or similar, or a small script.

Code:
Anderson, E.R., Duvall, T.L., Jr., and Jefferies, S.M., 1990. Modelling 
     of Solar Oscilation Power Spectra. The Astrophysical Journal, vol. 364, 
     p. 699.

Duvall, T.L., Jr., and Harvey, J.W., 1986. Solar Doppler Shifts: Sources 
     of Continuous Spectra. In Seismology of the Sun and the Distant Stars, 
     (ed. D. Gough), NATO A Ser., Reidel, Dordrecht, p. 105.

Basu, S., Antia, H.M., and Tripathy, S.C. 1999. Ring Diagram Analysis
     of Near-Surface Flow in the Sun. The Astrophysical Journal, vol. 512, 
     pp. 458-470.

Nigam, R., Kosovichev, A.G., Scherrer, P.H., and Schou, J., 1998. 
     Asymmetry in Velocity and Intensity Helioseismic Spectra: A solution 
     to a long-standing puzzle. The Astrophysical Journal, vol. 495, 
     pp. L115-L118.

The sort should yield

Code:
Anderson, E.R., Duvall, T.L., Jr., and Jefferies, S.M., 1990. Modelling 
     of Solar Oscilation Power Spectra. The Astrophysical Journal, vol. 364, 
     p. 699.

Basu, S., Antia, H.M., and Tripathy, S.C. 1999. Ring Diagram Analysis
     of Near-Surface Flow in the Sun. The Astrophysical Journal, vol. 512, 
     pp. 458-470.

Duvall, T.L., Jr., and Harvey, J.W., 1986. Solar Doppler Shifts: Sources 
     of Continuous Spectra. In Seismology of the Sun and the Distant Stars, 
     (ed. D. Gough), NATO A Ser., Reidel, Dordrecht, p. 105.

Nigam, R., Kosovichev, A.G., Scherrer, P.H., and Schou, J., 1998. 
     Asymmetry in Velocity and Intensity Helioseismic Spectra: A solution 
     to a long-standing puzzle. The Astrophysical Journal, vol. 495, 
     pp. L115-L118.

# 2  
Old 05-28-2014
Use something to replace with the new line. You know that a blank line is a record separator.

Code:
 awk '{
>     gsub(/\n/,"\1");
>     print $0 "\1" }
> ' RS= file | sort | tr '\1' '\12'
Anderson, E.R., Duvall, T.L., Jr., and Jefferies, S.M., 1990. Modelling
     of Solar Oscilation Power Spectra. The Astrophysical Journal, vol. 364,
     p. 699.

Basu, S., Antia, H.M., and Tripathy, S.C. 1999. Ring Diagram Analysis
     of Near-Surface Flow in the Sun. The Astrophysical Journal, vol. 512,
     pp. 458-470.

Duvall, T.L., Jr., and Harvey, J.W., 1986. Solar Doppler Shifts: Sources
     of Continuous Spectra. In Seismology of the Sun and the Distant Stars,
     (ed. D. Gough), NATO A Ser., Reidel, Dordrecht, p. 105.

Nigam, R., Kosovichev, A.G., Scherrer, P.H., and Schou, J., 1998.
     Asymmetry in Velocity and Intensity Helioseismic Spectra: A solution
     to a long-standing puzzle. The Astrophysical Journal, vol. 495,
     pp. L115-L118.

Reference here
# 3  
Old 05-28-2014
Code:
perl -00e'print sort <>' infile

This User Gave Thanks to radoulov For This Post:
# 4  
Old 05-28-2014
Hi.

Utility msort provides for paragraph sorts among its many options:
Code:
#!/usr/bin/env bash

# @(#) s1	Demonstrate sort by paragraphs, msort.
# See msort in repository or at:
# http://freecode.com/projects/msort

# Utility functions: print-as-echo, print-line-with-visual-space, debug.
# export PATH="/usr/local/bin:/usr/bin:/bin"
LC_ALL=C ; LANG=C ; export LC_ALL LANG
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C msort

FILE=${1-data1}

pl " Input data file $FILE:"
cat $FILE

pl " Results:"
msort -q -b -w $FILE

exit 0

producing:
Code:
$ ./s1

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 2.6.26-2-amd64, x86_64
Distribution        : Debian 5.0.8 (lenny, workstation) 
bash GNU bash 3.2.39
msort 8.44

-----
 Input data file data1:
Anderson, E.R., Duvall, T.L., Jr., and Jefferies, S.M., 1990. Modelling 
     of Solar Oscilation Power Spectra. The Astrophysical Journal, vol. 364, 
     p. 699.

Duvall, T.L., Jr., and Harvey, J.W., 1986. Solar Doppler Shifts: Sources 
     of Continuous Spectra. In Seismology of the Sun and the Distant Stars, 
     (ed. D. Gough), NATO A Ser., Reidel, Dordrecht, p. 105.

Basu, S., Antia, H.M., and Tripathy, S.C. 1999. Ring Diagram Analysis
     of Near-Surface Flow in the Sun. The Astrophysical Journal, vol. 512, 
     pp. 458-470.

Nigam, R., Kosovichev, A.G., Scherrer, P.H., and Schou, J., 1998. 
     Asymmetry in Velocity and Intensity Helioseismic Spectra: A solution 
     to a long-standing puzzle. The Astrophysical Journal, vol. 495, 
     pp. L115-L118.

-----
 Results:
Anderson, E.R., Duvall, T.L., Jr., and Jefferies, S.M., 1990. Modelling 
     of Solar Oscilation Power Spectra. The Astrophysical Journal, vol. 364, 
     p. 699.

Basu, S., Antia, H.M., and Tripathy, S.C. 1999. Ring Diagram Analysis
     of Near-Surface Flow in the Sun. The Astrophysical Journal, vol. 512, 
     pp. 458-470.

Duvall, T.L., Jr., and Harvey, J.W., 1986. Solar Doppler Shifts: Sources 
     of Continuous Spectra. In Seismology of the Sun and the Distant Stars, 
     (ed. D. Gough), NATO A Ser., Reidel, Dordrecht, p. 105.

Nigam, R., Kosovichev, A.G., Scherrer, P.H., and Schou, J., 1998. 
     Asymmetry in Velocity and Intensity Helioseismic Spectra: A solution 
     to a long-standing puzzle. The Astrophysical Journal, vol. 495, 
     pp. L115-L118.

The options are quiet, record is a block, sort entire text of record. These may be refined as necessary.

Best wishes ... cheers, drl
# 5  
Old 05-28-2014
I also want to number them starting from an initial value.

Code:
[3] Anderson, E.R., Duvall, T.L., Jr., and Jefferies, S.M., 1990. Modelling       
       of Solar Oscilation Power Spectra. The Astrophysical Journal, vol. 364,       
       p. 699.  

[4] Basu, S., Antia, H.M., and Tripathy, S.C. 1999. Ring Diagram Analysis      
       of Near-Surface Flow in the Sun. The Astrophysical Journal, vol. 512,       
       pp. 458-470. 

[5] Duvall, T.L., Jr., and Harvey, J.W., 1986. Solar Doppler Shifts: Sources       
        of Continuous Spectra. In Seismology of the Sun and the Distant Stars,       
        (ed. D. Gough), NATO A Ser., Reidel, Dordrecht, p. 105.  

[6] Nigam, R., Kosovichev, A.G., Scherrer, P.H., and Schou, J., 1998.       
        Asymmetry in Velocity and Intensity Helioseismic Spectra: A solution       
        to a long-standing puzzle. The Astrophysical Journal, vol. 495,       
        pp. L115-L118.

# 6  
Old 06-01-2014
With well over 800 posts in these forums and the code you have been given, I am disappointed that you could not add reference numbers on your own. Try this minor modification to clx's awk script:
Code:
#!/bin/ksh
# Usage: sortrefs [starting_sequence_number [input_file]]
# Sort references found in the given input_file (default ref.txt) and add
# sequences numbers starting with starting_sequence_number (default 1).
awk '
{	gsub(/\n/,"\1");
	print $0 "\1"
}' RS='' "${2:-ref.txt}" | sort | awk -v sseq="${1:-1}" '
{	gsub(/\1/, "\n")
	printf("[%d] %s\n", sseq++, $0)
}'

As always, if you want to try this on a Solaris/SunOS system, change awk (in both places where it is used in this script) to /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk.

I use the Korn shell, but this script can use, ksh, bash, or any other shell that supports POSIX required variable expansions. If you save the above script in a file names sortrefs, make it executable, and invoke it as:
Code:
./sortrefs 44

when ref.txt contains your sample input, the output produced is:
Code:
[44] Anderson, E.R., Duvall, T.L., Jr., and Jefferies, S.M., 1990. Modelling 
     of Solar Oscilation Power Spectra. The Astrophysical Journal, vol. 364, 
     p. 699.

[45] Basu, S., Antia, H.M., and Tripathy, S.C. 1999. Ring Diagram Analysis
     of Near-Surface Flow in the Sun. The Astrophysical Journal, vol. 512, 
     pp. 458-470.

[46] Duvall, T.L., Jr., and Harvey, J.W., 1986. Solar Doppler Shifts: Sources 
     of Continuous Spectra. In Seismology of the Sun and the Distant Stars, 
     (ed. D. Gough), NATO A Ser., Reidel, Dordrecht, p. 105.

[47] Nigam, R., Kosovichev, A.G., Scherrer, P.H., and Schou, J., 1998. 
     Asymmetry in Velocity and Intensity Helioseismic Spectra: A solution 
     to a long-standing puzzle. The Astrophysical Journal, vol. 495, 
     pp. L115-L118.

# 7  
Old 06-01-2014
Quote:
Originally Posted by kristinu
I also want to number them starting from an initial value.

Code:
[3] Anderson, E.R., Duvall, T.L., Jr., and Jefferies, S.M., 1990. Modelling       
       of Solar Oscilation Power Spectra. The Astrophysical Journal, vol. 364,       
       p. 699.  

[4] Basu, S., Antia, H.M., and Tripathy, S.C. 1999. Ring Diagram Analysis      
       of Near-Surface Flow in the Sun. The Astrophysical Journal, vol. 512,       
       pp. 458-470. 

[5] Duvall, T.L., Jr., and Harvey, J.W., 1986. Solar Doppler Shifts: Sources       
        of Continuous Spectra. In Seismology of the Sun and the Distant Stars,       
        (ed. D. Gough), NATO A Ser., Reidel, Dordrecht, p. 105.  

[6] Nigam, R., Kosovichev, A.G., Scherrer, P.H., and Schou, J., 1998.       
        Asymmetry in Velocity and Intensity Helioseismic Spectra: A solution       
        to a long-standing puzzle. The Astrophysical Journal, vol. 495,       
        pp. L115-L118.

Code:
perl -00 -e  '$ln=3; for(sort<>){printf ("[%d] %s\n", $ln++, $_)};'

 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk Programming references

Hi all, I am new and I am very interested in Awk programming language and would like to know what references or books that really worked for you that was clear, concise with simple examples. much appreciated in advance. (1 Reply)
Discussion started by: Apollo
1 Replies

2. Shell Programming and Scripting

Query related to references in array in Perl

Hi All I have a doubt and want to be cleared I am using @array = (10, 20); $rarray = \@array; #print "$rarray\n"; #print "@$rarray\n"; $rr= \$array; #print $$rr; $rr++; print $$rr; As you can see the $rr contains the reference to the first element of the array , now as the... (5 Replies)
Discussion started by: parthmittal2007
5 Replies

3. Shell Programming and Scripting

Strip one of two Patch references

This log file is wacky. the syntax puts this in the Installation line: Installation PATCH75682.91 of PATCH75681 complete Installation PATCH76537.91 of PATCH76537 complete Installation PATCH92217.91 of PATCH92217 complete So I'm looking for a sed 's///' to remove the first PATCHxxxx... (6 Replies)
Discussion started by: dba_frog
6 Replies

4. Shell Programming and Scripting

Perl References/Dereferences

Can someone explain where can we actually used print $var->; or print $$var When does the -> becomes necessary and when its optional. (1 Reply)
Discussion started by: dinjo_jo
1 Replies

5. Shell Programming and Scripting

perl - passing hash references to functions

hi there I have the following script in which i have created a PrintHash() function. I want to pass to this function the reference to a hash (in the final code i will be passing different hashes to this print function hence the need for a function). I am getting an error Type of arg 1 to... (1 Reply)
Discussion started by: hcclnoodles
1 Replies

6. Programming

Wanted: References on Sockets and Threads for C

I'm looking at http://www.opengroup.org/pubs/online/7908799/xsh/pthread.h.html trying to understand mutexs and semaphores. Windows makes a distinction between the two. Is a mutex and semaphore different in unix land? Is there a tutorial on threading in unix somewhere? I'm also looking at... (4 Replies)
Discussion started by: siegfried
4 Replies

7. UNIX for Advanced & Expert Users

Compound indirect variable references

Using bash, I'm trying to read a .properties file (name=value pairs), assigning an indirect variable reference for each line in the file. The trick is that a property's value string may contain the name of a property that occurred earlier in the file, and I want the name of the 1st property to... (5 Replies)
Discussion started by: tkrussel
5 Replies

8. AIX

AIX References?

Would like to know where or what is available to quickly develope my AIX skills. Training budget limited.. Thanks and have a great day! (1 Reply)
Discussion started by: lmwical
1 Replies

9. UNIX for Dummies Questions & Answers

IRIX books, manuals, references...

Does anyone out there know of ANY specific books pertaining to SGI's flavor of Unix - IRIX? I have been in contact with SGI directly and they have not supplied me with any usable reference material or manuals. I realize man pages are a good source for info, but I need to go a little deeper... (6 Replies)
Discussion started by: lozinit
6 Replies
Login or Register to Ask a Question

Featured Tech Videos