# go-coreutils This is an education project that attempts to reimplement the GNU coreutils in Go. You can find the full manual here: https://www.gnu.org/software/coreutils/manual/coreutils.html ## Go Packages to Teach * bufio, io -- https://pkg.go.dev/bufio@go1.25.3 * container -- heap, list, or ring * sha512 -- https://pkg.go.dev/crypto/sha512@go1.25.3 * image -- maybe an imagemagick? * maps -- https://pkg.go.dev/maps@go1.25.3 * net -- https://pkg.go.dev/net@go1.25.3 * os -- https://pkg.go.dev/os@go1.25.3 * path -- probably all of them use it * regex -- https://pkg.go.dev/regexp@go1.25.3 * slices -- https://pkg.go.dev/slices@go1.25.3 * strings -- https://pkg.go.dev/strings@go1.25.3 * strconv -- https://pkg.go.dev/strconv@go1.25.3 * time -- https://pkg.go.dev/time@go1.25.3 ## Every Project Must Use * testing -- https://pkg.go.dev/testing@go1.25.3 * flag -- https://pkg.go.dev/flag ## Possible Tools * cat -- already made * od -- already made * wc -- https://www.gnu.org/software/coreutils/manual/coreutils.html#wc-invocation - io, regex * tr - https://www.gnu.org/software/coreutils/manual/coreutils.html#tr-invocation * date - https://www.gnu.org/software/coreutils/manual/coreutils.html#date-invocation * numfmt -- https://www.gnu.org/software/coreutils/manual/coreutils.html#numfmt-invocation - strconv, strings, flags * sha2sum -- https://www.gnu.org/software/coreutils/manual/coreutils.html#sha2-utilities - sha512, bufio, io, time * stat, du - https://www.gnu.org/software/coreutils/manual/coreutils.html#stat-invocation - os, stat * head, tail, split -- https://www.gnu.org/software/coreutils/manual/coreutils.html#Output-of-parts-of-files - os, strings, bufio * sort, uniq, comm -- https://www.gnu.org/software/coreutils/manual/coreutils.html#uniq-invocation - maps, slices * cut -- https://www.gnu.org/software/coreutils/manual/coreutils.html#join-invocation - bufio, strings, slices, maybe maps * nohup -- https://www.gnu.org/software/coreutils/manual/coreutils.html#nohup-invocation - os, bufio, io * ls - https://www.gnu.org/software/coreutils/manual/coreutils.html#ls-invocation - path, root.fs, regex * curl vs wget -- https://curl.se/ -- net/http, bufio, path * grep -- https://www.gnu.org/software/grep/manual/ -- os, regex, strings, slices * find -- https://www.gnu.org/software/findutils/manual/html_mono/find.html - path, regex, os