Игнорировать регистр при сортировке

Пишу прогу для сортировки строк по типу sort в unix. Нужно игнорировать регистр не меняя изначальные строки(ToLower/ToUpper не подходит). Нужно чтобы было "text"="TEXT" и при сортировки строк например

some
text
one
some
TEXT

На выходе получилось

one
some
some
text
TEXT

Я додумался толлько через ToLower игнорировать регистр но это как я и сказал не подходит

package main

import (
    "flag"
    "fmt"
    "io/ioutil"
    "log"
    "os"
    "sort"
    "strings"
)

var (
    rotate        bool
    setColumn     int
    byNum         bool
    repeated      bool
    byMonth       bool
    trimLastSpace bool
    checkSorted   bool
    path          string
)

func home() string {
    home, err := os.UserHomeDir()
    if err != nil {
        log.Fatal(err)
    }
    return home + "/"
}

func flags() {
    flag.BoolVar(&rotate, "r", false, "rotate sorting")
    flag.BoolVar(&trimLastSpace, "b", false, "ignore last spaces")
    flag.BoolVar(&repeated, "u", false, "show repeated strings")
    flag.BoolVar(&checkSorted, "c", false, "check sorted string or not")
    flag.BoolVar(&byMonth, "M", false, "sort by months")
    flag.BoolVar(&byNum, "n", false, "sort by numbers")
    flag.IntVar(&setColumn, "k", 0, "set target column to sort it")
    flag.StringVar(&path, "f", home(), "set path to target file")
    flag.Parse()
}

func init() {
    flags()
}

func getUnsortedContent() string {
    content, err := ioutil.ReadFile(path)
    if err != nil {
        log.Fatal(err)
    }
    return string(content)
}

func FieldsStrs(str string) []string {
    return strings.Fields(str)
}

func tolower() []string {
    content := getUnsortedContent()
    strs := FieldsStrs(content)
    lenstr := len(strs)
    for i := 0; i < lenstr; i++ {
        strs[i] = strings.ToLower(strs[i])
    }
    return strs
}

func sorting() []string {
    fields := tolower()
    sort.Slice(fields, func(i, j int) bool {
        return fields[i] < fields[j]
    })
    return fields
}

func main() {
    fmt.Println(sorting())
}

Как игнорировать регистр без изменения изнчальных строк?

Может вместо sort.Slice(...) использовать что-то другое что будет игнорить регистр?


Ответы (0 шт):