Visit Our UNIX and Linux User Community


Sort a file line by line alphabetically


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sort a file line by line alphabetically
# 1  
Old 02-09-2008
Sort a file line by line alphabetically

infile:
z y x
c b a

desired output:
x y z
a b c

I don't want to sort the lines into this:
a b c
x y z

nor this:
c b a
z y x

The number of fields per line and number of lines is indeterminate. The field separator is always a space.

Thanks for the use of your collective brains. Smilie
# 2  
Old 02-09-2008
what have you tried so far?
# 3  
Old 02-09-2008
My homework was never this much fun. You have to do this all in bash or what exactly?

PHP Code:
#!/usr/bin/perl                                                                                                              

use strict;
use 
warnings;

while(
my $line = <STDIN>) {
    print 
join(" "sort(split(/\s+/, $line))) . "\n";


Last edited by HPAVC; 02-09-2008 at 09:16 PM..
# 4  
Old 02-09-2008
I've studied the sort docs and tried many combinations without success.
sort

I'm sure I could muddle my way through with a python script, but I was hoping to get a one-liner using a "sort" or similar utility.

This exercise is really just a puzzle I came up with while reading the Vim docs on filters. I was trying to sort a range of lines, then I asked myself if I could just sort the current line.

I'm not a student in any classes, just a student of life.
# 5  
Old 02-09-2008
I responded to your question but I included a link, so I guess it's being held up for administrator review. Anyway, I've tried "sort" and some awk, but still no joy.
# 6  
Old 02-09-2008
The old split sort join trick. Nice. Thanks.
# 7  
Old 02-09-2008
Quote:
Originally Posted by H2OBoodle
Anyway, I've tried "sort" and some awk, but still no joy.
you should show how you did that.
anyway, have a go at it
Code:
awk '
 {
  for(i=NF;i>0;i--){
      # fill in the blanks
  }
 }
' file


Previous Thread | Next Thread
Test Your Knowledge in Computers #373
Difficulty: Medium
JInterpreter is Java bytecode designed to be executed by the Java virtual machine.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Sort alphabetically starting from specified letter

Hi. I'm trying to sort a list of items in a file alphabetically but starting from the letter 'X'. For instance if I had the following file; test.txt Z A T W Y B S X I would like the output to look like; X Y (8 Replies)
Discussion started by: mmab
8 Replies

2. Shell Programming and Scripting

Using awk to sort a file alphabetically

I have a problem with my homework I need to create a shell script using #!bin/awk -f the script will output the file in an alphabetical order only words and after the word is : after that a space then , then it will be numbered each character by which line its been for example CB 92A A... (1 Reply)
Discussion started by: collapse
1 Replies

3. Shell Programming and Scripting

Need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line...

Hello, I need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line... An example of entries in the file would be: SRVXPAPI001 ERRO JUN24 07:28:34 1775 REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F ... (8 Replies)
Discussion started by: Ferocci
8 Replies

4. UNIX for Dummies Questions & Answers

[Solved] Reverse the order of a list of file names (but not sort them alphabetically or numerically)

Hello all, I have a list of file names in a text document where each file name consists of 4 letters and 3 numbers (for example MACR119). There are 48 file names in the document (they are not in alphabetical or numerical order). I would like to reorder the list of names so that the 48th name is... (3 Replies)
Discussion started by: MDeBiasse
3 Replies

5. Shell Programming and Scripting

Sort a line and Insert sorted word(s) in a line

Hello, I am looking to automate a task - which is updating an existing access control instruction of a server and making sure that the attributes defined in the instruction is in sorted order. The instructions will be of a specific syntax. For example lets assume below listed is one of an... (6 Replies)
Discussion started by: sanjayroc
6 Replies

6. Shell Programming and Scripting

Sort alphabetically, then numerically

Greetings - I'm not necessarily new to bash scripting - I'm probably between beginner and intermediate, but I have something that I just cannot figure out after many attempts to find it. I have a file that is merely a list of many files, with their respective paths, and a branch path (ClearCase)... (5 Replies)
Discussion started by: 1cor29
5 Replies

7. Shell Programming and Scripting

[Solved] Problem in reading a file line by line till it reaches a white line

So, I want to read line-by-line a text file with unknown number of files.... So: a=1 b=1 while ; do b=`sed -n '$ap' test` a=`expr $a + 1` $here do something with b etc done the problem is that sed does not seem to recognise the $a, even when trying sed -n ' $a p' So, I cannot read... (3 Replies)
Discussion started by: hakermania
3 Replies

8. Shell Programming and Scripting

Sort by numbers, then alphabetically

Hey guys, I have a file that contains the following: 366 K 364 Q 12 UB 7 INC. P 4 Law 2 LAMB 2 High 1 QEG 1 OF 1 LC 1 B As you can see, it's already sorted by numerical order, how do I sort it again, breaking the ties by using the alphabetical order of the second column, but... (2 Replies)
Discussion started by: Andrew9191
2 Replies

9. UNIX for Dummies Questions & Answers

Sort file alphabetically AND numerically

Hi all. I have 2 files like this: f1 A 10 B 80 C 9 f2 A 11 B 700 C 10 What I want is the concatenation of the two files sorted by name (alphabetically) and size (numerically), so the result should be like this: F3 (cat f1 f2 sorted) A 10 A 11 B 80 B 700 (2 Replies)
Discussion started by: mrodrig
2 Replies

10. UNIX for Dummies Questions & Answers

How to sort alphabetically after finding values

I have a list of people in a usage log and need to print the names and phone numbers of people with over 500 logins. I'd also like to display these names alphabetically. I have their total logins set to a variable named total. So far, I have very little in my awk script to do this: FS=":"... (4 Replies)
Discussion started by: doubleminus
4 Replies

Featured Tech Videos