sort

package
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package sort implements the sort builtin command.

sort — sort lines of text files

Usage: sort [OPTION]... [FILE]...

Write sorted concatenation of all FILE(s) to standard output. With no FILE, or when FILE is -, read standard input.

Accepted flags:

-r, --reverse
    Reverse the result of comparisons (sort descending).

-n, --numeric-sort
    Compare according to string numerical value.

-u, --unique
    Output only the first of an equal run.

-k, --key=KEYDEF
    Sort via a key definition; KEYDEF is F[.C][OPTS][,F[.C][OPTS]].

-t, --field-separator=SEP
    Use SEP as the field separator.

-b, --ignore-leading-blanks
    Ignore leading blanks when finding sort keys.

-f, --ignore-case
    Fold lowercase to uppercase for comparisons.

-d, --dictionary-order
    Consider only blanks and alphanumeric characters.

-c
    Check whether input is sorted; exit 1 if not.

-C, --check=silent
    Like -c but do not print the diagnostic line.

-s, --stable
    Stabilize sort by disabling last-resort comparison.

-h, --help
    Print usage to stdout and exit 0.

Rejected flags (unsafe):

-o FILE (writes to filesystem)
-T DIR  (writes temp files)
--compress-program (executes a binary)

Exit codes:

0  Success (or input is sorted when using -c/-C).
1  Error, or input is NOT sorted when using -c/-C.

Memory safety:

sort must buffer all input before producing output. A maximum of
MaxLines (1,000,000) lines is enforced to prevent OOM. Per-line cap
of MaxLineBytes (1 MiB) is enforced via the scanner. All loops check
ctx.Err() at each iteration to honour the shell's execution timeout.

Index

Constants

View Source
const MaxLineBytes = 1 << 20 // 1 MiB

MaxLineBytes is the per-line buffer cap for the line scanner.

View Source
const MaxLines = 1_000_000

MaxLines is the maximum number of lines sort will buffer. Beyond this the command errors out to prevent unbounded memory growth.

View Source
const MaxTotalBytes = 256 * 1024 * 1024 // 256 MiB

MaxTotalBytes is the cumulative byte cap across all input lines. This prevents OOM when many lines are each below MaxLineBytes but collectively consume excessive memory. 256 MiB is generous for agent workloads.

Variables

View Source
var Cmd = builtins.Command{Name: "sort", Description: "sort lines of text files", MakeFlags: registerFlags}

Cmd is the sort builtin command descriptor.

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL