090431

Using Perl to sort Altium netlist (most newlines removed) alphanumerically.

perl -e 'while (($first, @rest) = split(" ", )) { print( $first . " " . join(" ", sort(@rest)) . "\n"); }' < file  > outfile
 (Thanks Matt Heike)
turns this:

ASIC_PAD1 U27A-5 J11-20 U26A-8 U25A-8 J9-57
ASIC_PAD2 U27A-6 J11-19 U26A-10 U25A-10 J9-55
ASIC_PAD3 U27A-7 J11-18 U26A-12 U25A-12 J9-54
ASIC_PAD4 U27A-12 J9-47 U25A-19 U26A-19
ASIC_PAD5 U27A-11 J11-17 U25A-17 U26A-17 J9-53
ASIC_PAD6 U27A-10 J11-14 U25A-15 U26A-15 J9-52
ASIC_PAD7 U25A-13 U27A-9 U26A-13 J9-16
ASIC_PAD8 U26B-6 U27B-4 U25B-6 J11-15 J9-51
ASIC_PAD9 U26B-8 U27B-5 U25B-8 J11-12 J9-50



...into this:
ASIC_PAD1 J11-20 J9-57 U25A-8 U26A-8 U27A-5
ASIC_PAD2 J11-19 J9-55 U25A-10 U26A-10 U27A-6
ASIC_PAD3 J11-18 J9-54 U25A-12 U26A-12 U27A-7
ASIC_PAD4 J9-47 U25A-19 U26A-19 U27A-12
ASIC_PAD5 J11-17 J9-53 U25A-17 U26A-17 U27A-11
ASIC_PAD6 J11-14 J9-52 U25A-15 U26A-15 U27A-10
ASIC_PAD7 J9-16 U25A-13 U26A-13 U27A-9
ASIC_PAD8 J11-15 J9-51 U25B-6 U26B-6 U27B-4
ASIC_PAD9 J11-12 J9-50 U25B-8 U26B-8 U27B-5


...which can be lifted into Excel (or OO Calc).
manually move columns & then using:
=CONCATENATE("define (net ",A3," (order ",B3," ",C3," ",D3," ",E3," ",F3,"))")

...to produce this:

define (net ASIC_PAD1 (order U27A-5 J11-20 J9-57 U25A-8 U26A-8))
define (net ASIC_PAD2 (order U27A-6 J11-19 J9-55 U25A-10 U26A-10))
define (net ASIC_PAD3 (order U27A-7 J11-18 J9-54 U25A-12 U26A-12))
define (net ASIC_PAD4 (order U27A-12  J9-47 U25A-19 U26A-19))
define (net ASIC_PAD5 (order U27A-11 J11-17 J9-53 U25A-17 U26A-17))
define (net ASIC_PAD6 (order U27A-10 J11-14 J9-52 U25A-15 U26A-15))
define (net ASIC_PAD7 (order U27A-9  J9-16 U25A-13 U26A-13))
define (net ASIC_PAD8 (order U27B-4 J11-15 J9-51 U25B-6 U26B-6))
define (net ASIC_PAD9 (order U27B-5 J11-12 J9-50 U25B-8 U26B-8))

...which is useful for re-ordering the from-tos in Specctra CCT dofile for lots of daisy chain nets.