'(("CABLE" "50 70 40" "Yes" "NOTED" 100)
("CABLE" "40 50 25" "NO" "" 000)
("CABLE" "50 10 50" "Yes" "NOTED" 200)
("CABLE" "10 80 60" "Yes" "NOTED" 300)
)
Final result:(setq lst
'(
("CABLE" "50 70 40" "Yes" "NOTED" 100)
("CABLE" "40 50 25" "NO" "" 000)
("CABLE" "50 10 50" "Yes" "NOTED" 200)
("CABLE" "10 80 60" "Yes" "NOTED" 300)
)
)
(defun str->lst ( str )
(read (strcat "(" str ")"))
)
(setq lstn (vl-sort lst '(lambda ( a b ) (if (= (car (str->lst (cadr a))) (car (str->lst (cadr b)))) (if (= (cadr (str->lst (cadr a))) (cadr (str->lst (cadr b)))) (< (caddr (str->lst (cadr a))) (caddr (str->lst (cadr b)))) (< (cadr (str->lst (cadr a))) (cadr (str->lst (cadr b))))) (< (car (str->lst (cadr a))) (car (str->lst (cadr b))))))))