how to sort strings by length?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to sort strings by length?
# 1  
Old 02-17-2009
how to sort strings by length?

I'm trying to find the longest word in /usr/share/dict/words
The first thing I can think of is to sort the content by length then it would be easy to find out, but then i realize theres no option of sort to sort by length.
Could you guys please give me some help?Smilie
# 2  
Old 02-17-2009
Some testing in Red Hat 5 EL ...

Code:
$ wc -l /usr/share/dict/words
483523 /usr/share/dict/words


$ awk '{ print length(), $0 | "sort -n" }'  /usr/share/dict/words

........
........
27 hydroxydesoxycorticosterone
29 cyclotrimethylenetrinitramine
29 trinitrophenylmethylnitramine
30 half-embracinghalf-embracingly
31 dichlorodiphenyltrichloroethane
45 pneumonoultramicroscopicsilicovolcanoconiosis

# 3  
Old 02-17-2009
thank you very much Rubin, it works perfectly!
i have one more question, please:
so... length() in awk '{ pirnt $0 }'
will count the length of the entire line and print it out as line number?
# 4  
Old 02-18-2009
Quote:
Originally Posted by rockbike
...
so... length() in awk '{ pirnt $0 }'
will count the length of the entire line and print it out as line number?
Yes, ... it'll print out the number of all of the characters in the word.
# 5  
Old 02-18-2009
Quote:
Originally Posted by rubin
Yes, ... it'll print out the number of all of the characters in the word.
ye... i guess i didnt ask my question clearly...
lets say... what if the line to be printed contains two or more words
what will length() do? my guess is the total number of characters of that line?
or in this case length() will not work properly?
# 6  
Old 02-18-2009
Quote:
Originally Posted by rockbike
... what if the line to be printed contains two or more words
what will length() do? my guess is the total number of characters of that line?
...
Your guess is right, it'll print the total number of characters of the current line, including the whitespaces or any other character.
Refer to the awk man pages to learn what is & how length() function works.
# 7  
Old 02-18-2009
Quote:
Originally Posted by rubin
Your guess is right, it'll print the total number of characters of the current line, including the whitespaces or any other character.
Refer to the awk man pages to learn what is & how length() function works.
ok i will
thank you very much mate!
cheersSmilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Array length: ls and sort

Hi there, I'm listing files and sorting them. When I try to get length of array variable in which these files are stored I get 1 as value. That's weird. files_info="$(find $input_dir -name "*_CHR$i.info" | sort )" printf ${#files_info}"\n" #print length #--loop through... (6 Replies)
Discussion started by: genome
6 Replies

2. Shell Programming and Scripting

How to sort when there is variable length decimal points.?

Hi Experts, Quick quesion: I want to sort this in the file , but not working, when using # sort file name 305.932 456.470 456.469 456.468 456.467 172.089 456.467 456.466 456.465 111.573 111.578 111.572 111.572 87.175 87.174 75.898 (4 Replies)
Discussion started by: rveri
4 Replies

3. Shell Programming and Scripting

Sort a hash based on the string length of the values

Hi, I want to be able to sort/print a hash based on the string length of the values. For example %hash = ( key1 => 'jeri', key2 => 'corona', key3 => 'una, ); I want to be able to print in the following order (smallest to largest) una,jeri,corona OR... (1 Reply)
Discussion started by: jdilts
1 Replies

4. Shell Programming and Scripting

sort file specifying record length

I've been searching high and low for this...but, maybe I'm just missing something. I have a file to be sorted that, unfortunately, contains binary data at the end of the line. As you may guess, this binary data may contain a newline character, which messes up the sort. I think I could resolve this... (5 Replies)
Discussion started by: jcagle
5 Replies

5. Shell Programming and Scripting

Unix sort for fixed length columns and records

I was trying to use the AIX 6.1 sort command to sort fixed-length data records, sorting by specific columns only. It took some time to figure out how to get it to work, so I wanted to share the solution. The sort man page wasn't much help, because it talks about field delimeters (default space... (1 Reply)
Discussion started by: CheeseHead1
1 Replies

6. Shell Programming and Scripting

Replace strings based on position and length?

Suppose i have a file which contains thousands of records. e.g adjgmptjadmwpgjmwmd i need to replace the string from 3rd to 8th position using awk script in entire file. And also the positions will be passed as parameter. (3 Replies)
Discussion started by: laknar
3 Replies

7. Shell Programming and Scripting

Split strings based on length

Hi All I am very much in need of help splitting strings based on length in Perl. e.g., Input text is : International NOUN Corp. NOUN 's POS Tulsa NOUN Output I want is : International I In Int Inte l al nal onal NOUN Corp. C Co Cor Corp . p. rp. orp. NOUN... (2 Replies)
Discussion started by: my_Perl
2 Replies

8. Shell Programming and Scripting

Need a sort solution for fixed length file

I have a 1250 byte record that I need to sort in column 10-19 and in column 301. I have tried the sort command, but it looks like it needs delimiters to work. The record can have spaces in a lot of its 1250 columns, but 10-19, and 301 are guaranteed. These columns are numeric too. A sample... (1 Reply)
Discussion started by: mb1201
1 Replies

9. Shell Programming and Scripting

remove strings of lowercase characters (with minimum length requirement)

Hi all, I want to delete all lowercase characters from my file, but only strings of length 7 and more. For example, how can I go from: JHGEFigeIGDUIirfyfiyhgfoiyfKJHGuioyrDHG To: JHGEFigeIGDUIKJHGuioyrDHG There should be a trick to add to sed 's///g', but I can't figure it out.... (2 Replies)
Discussion started by: elbuzzo
2 Replies

10. Shell Programming and Scripting

sort on fixed length files

Hi How to sort a fixed length file on a given char range and just display the duplicates. I did search for man sort to find any option but could find any.,something similar to cut -c 1-5,25-35. I have alternate way of doing this by using combination of cut,awk. but this creates extra temp... (6 Replies)
Discussion started by: sach_in
6 Replies
Login or Register to Ask a Question