first commit
This commit is contained in:
commit
35bdca9019
BIN
SortTextLines.exe
Normal file
BIN
SortTextLines.exe
Normal file
Binary file not shown.
62
SortTextLines.go
Normal file
62
SortTextLines.go
Normal 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()
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user