Output formats: --as¶
Every disc command that produces tabular or hierarchical output
accepts an --as flag selecting how that output is rendered.
--as display pretty tables, headers, colour, Unicode glyphs
--as tsv tab-separated values, one row per line
--as json JSON object, one entry per report (see below)
Default per output stream¶
If you do not pass --as, disc chooses for you based on
whether stdout is a terminal:
stdout |
Default |
Why |
|---|---|---|
Terminal (interactive) |
|
Headers, alignment, and styling make the output legible at a glance. |
Pipe or redirect |
|
One row per line, stable column order, no decorative chrome
so downstream tools ( |
The detection happens at command start; nothing about your shell
context needs configuring. Override it explicitly with --as when
you want pretty output piped to a pager, or scriptable output to a
terminal:
disc ls scsi0.dat | less # pipe → tsv by default
disc ls scsi0.dat --as display | less # force pretty
disc ls scsi0.dat --as json > catalog.json
The three formats in detail¶
display¶
The interactive format. Tables are rendered with column headers, aligned cells, and titles; trees use box-drawing characters; key/ value reports use a labelled two-column layout. Long values are truncated to fit the terminal width. Colour is applied where the terminal supports it.
Reach for display when a human is reading the output. Avoid it
when scripting — the column widths and any truncation depend on
terminal size and are not part of the stable contract.
tsv¶
Tab-separated values, one row per line. Column headers (if not
suppressed) are emitted on the first line, prefixed with # so
awk and friends can skip the line cheaply:
$ disc ls scsi0.dat --as tsv
#name load exec length attr
!BOOT 4294967295 4294967295 20 WR/R
ELITE 6400 32803 23552 LR/R
…
Addresses and lengths are emitted as plain decimal integers — the
base is irrelevant to a consumer, so cut/awk get a number
they can use directly rather than a hex string to re-parse.
Field separators are literal tab characters (\t); no quoting,
no escaping. The column order, names, and value formats are part of
the CLI’s stable contract — they will not change without a major
version bump.
Reach for tsv when feeding output into shell pipelines or other
column-aware tooling.
json¶
A JSON object, with one key per report the command produced. Each report is rendered as a list of objects (one per row) for tabular data, or as a nested tree of objects for hierarchical data:
$ disc stat scsi0.dat --as json
{
"disc": {
"geometry": "615 cylinders, 4 heads, 32 sectors/track",
"size": 20152320
},
"partition_1": { … },
"partition_2": { … }
}
Field names match the tsv column names. Numeric quantities —
load and exec addresses, file lengths, disc and partition sizes,
user quotas — are rendered as JSON numbers, not strings, so a
consumer can use them arithmetically without parsing. The display
format shows the same values human-first (addresses as 0x-prefixed
hex, sizes and quotas in friendly units like 19.2 MiB); the
machine formats (tsv, json) always carry the raw integer.
Reach for json when consuming output from a structured-data
tool (jq, yq, a Python or Node script) — the structure is
the same shape your script will want.
Multi-report commands¶
Some commands logically return more than one piece of information:
disc stat OUTER_PATHreturns adiscblock (physical geometry + total size) and onepartition_Nblock per filesystem partition (partition_1for DFS or ADFS,partition_2for AFS on a dual-partition image).disc afs planreturns several blocks (geometry, occupancy, suggestedafs initinvocation, …).
Each sub-report has a stable name. You can ask for just the parts you want:
disc stat scsi0.dat --report partition_2 # AFS only
disc stat scsi0.dat --report disc --report partition_1
disc stat scsi0.dat --no-reports # silence display
--report may be repeated; --no-reports suppresses every
report (the command’s side effects still run, which matters for
action commands whose reports are incidental). --all-reports
forces every report on, in case the command’s default filter would
hide some.
Header control¶
The --header / --no-header flags toggle the leading row in
tsv and the column-header row in display. JSON output is
shape-stable regardless and ignores both flags. Default is
“include” — turn it off when you want a header-less stream for
awk -F'\t' pipelines.
Detailed vs essential columns¶
Some commands carry both a brief and a verbose column set —
disc ls for instance can include the raw access byte alongside
the symbolic form (--access-byte). The --detailed /
--essential flags pick between them when the command exposes
both:
--essential— the minimum useful column set (the default fordisplayandtsv).--detailed— every column the command knows how to emit (the default forjson, since downstream scripts can simply ignore fields they do not need).
Either flag overrides the format-driven default.