How to sort a list alphabetically but ignore numbers?

AI Thread Summary
To sort URLs based on the letters in the URL, the process involves extracting specific components of the URLs using a delimiter, typically the slash ("/"). This allows for the identification of the segment that contains the sorting key, which is often the last part of the URL. Tools like awk can be utilized to parse the URLs and create a new file that pairs the sorting key with the original URL, followed by using the sort command to generate a sorted list. For users on Linux or Unix systems, this method is effective. In cases where URLs are more complex, such as those containing hyphens and additional keywords, Python scripts can be employed. However, users may encounter errors if the script is not provided with the necessary input file containing the URLs to be sorted. It's important to ensure that the script is executed with the correct command format, specifying the input file. Additionally, clarification is needed on whether URLs will be sorted lexicographically based on their concatenated string representation without special characters.
rollcast
Messages
403
Reaction score
0
I have a list of urls I need to sort but I need to sort them only using the letters in the url?

Eg.

example.com/174353/a
example.com/3452344/c
example.com/435322/d
example.com/2342/b
example.com/23456/e

Would be sorted as:

example.com/174353/a
example.com/2342/b
example.com/3452344/c
example.com/435322/d
example.com/23456/e

Thanks
AL
 
Computer science news on Phys.org
if you process the file using the / as a separator then you can extract out the 3rd field to sort on.

you could probably use awk to do the parsing to write a new file containing the key then url on one line
then use the sort command to generate a sorted list.

thats if you're running on linux or some unix variant.
 
Most varieties of BASIC have a Right$(,) function, which would read the closing letter(s) off the target string.
 
jedishrfu said:
if you process the file using the / as a separator then you can extract out the 3rd field to sort on.

you could probably use awk to do the parsing to write a new file containing the key then url on one line
then use the sort command to generate a sorted list.

thats if you're running on linux or some unix variant.

I'm on Ubuntu 11.10.

The addresses aren't as simple as I thought here's one for example.

http:// www. flyforums. co.uk/fly-tying-step-step/160-beacon-beige.html

(The spaces are just there to stop it hyperlinking it.)

They all follow the same pattern with a number-couple of keywords separated by -s .html
 
how about this python script

http://snippets.dzone.com/posts/show/10115
 
Last edited by a moderator:
jedishrfu said:
how about this python script

http://snippets.dzone.com/posts/show/10115

It comes up with an error,

" File "sort.py", line 3, in <module>
filename = sys.argv[1]
IndexError: list index out of range"
 
Last edited by a moderator:
Please clarify. Would the URL

http:// www. flyforums. co.uk/fly-tying-step-step/160-beacon-beige.html

be lexicographically sorted with the value

httpwwwflyformscoukflytryingstepstepbeaconbeigehtml

?
 
when you run it you're supposed to provide a file of your urls to be sorted.

./sorturls.py myfileofurls.lst

where sorturls.py is the name of the script and the myfileofurls.lst is your file of unsorted urls.
 
Back
Top