first commit

This commit is contained in:
r0n1n7an 2023-05-23 17:25:00 +08:00
commit 35bdca9019
3 changed files with 65 additions and 0 deletions

BIN
SortTextLines.exe Normal file

Binary file not shown.

62
SortTextLines.go Normal file
View File

@ -0,0 +1,62 @@
package main
import (
"bufio"
"flag"
"fmt"
"log"
"os"
"sort"
"strings"
)
var src string = ""
var dst string = ""
var trm bool = false
func init() {
flag.StringVar(&src, "i", "", "Input File")
flag.StringVar(&dst, "o", "", "Output File")
flag.BoolVar(&trm, "t", false, "Trim all leading and trailing spaces")
flag.Parse()
}
func main() {
if src == "" || dst == "" {
fmt.Printf("[ERR] Invalid Input/Output, Check Arguments !\r\n")
os.Exit(1)
}
fsi, err := os.Open(src)
if err != nil {
fmt.Printf("[ERR] %v\r\n", err)
os.Exit(1)
}
defer fsi.Close()
var lines []string
scn := bufio.NewScanner(fsi)
for scn.Scan() {
if trm {
lines = append(lines, strings.TrimSpace(scn.Text()))
} else {
lines = append(lines, scn.Text())
}
}
sort.Strings(lines)
fso, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
if err != nil {
fmt.Printf("[ERR] %v\r\n", err)
}
defer fso.Close()
for _, line := range lines {
_, err = fso.WriteString(line + "\r\n")
if err != nil {
log.Printf("[ERR] %v\r\n", err)
continue
}
}
fso.Sync()
fso.Close()
}

3
go.mod Normal file
View File

@ -0,0 +1,3 @@
module SortTextLines
go 1.19