Node Utils is a command line application for processing the data format generated by Export Nodes, which is a serialization of a tree whose nodes can have properties, and each property can have multiple values.
To build this project you need a recent version of Go. From the root of the project, run
go build
The output will be an executable called nu. Otherwise, you can run
go get github.com/francescomari/nu
This command will download the project, build it, and create an executable in
your GOPATH.
nu is composed of a bunch of commands. You can see the list of supported
commands by running
nu help
You can also get more information about a specific command by running
nu help [command]
where command is the name of a command.
nu nodes <export.txt
You can extract the fully qualifed paths of every node in an export with the
nodes command. The command reads the export from stdin and prints the list of
fully qualifed paths on stdout.
nu properties <export.txt
You can extract the fully qualified paths of every property in the export with
the properties command. The command reads the export from stdin and prints
both the fully qualified paths and the type of every properties to stdout.
nu stats <export.txt
You can extract some statistics about the content tree within the export with
the stats command. The command reads the export from stdin and prints the
statistics on stdout.
nu subtree [path] <export.txt
Sometimes you are interested only in a part of the export. If you need to reduce
the focus of the export to a particular subtree, you can use the subtree
command. The command receives a mandatory argument path that identifies the
subtree you are interested in. The path needs to be an absolute path, e.g.
/path/to/tree. The command prints to stdout a new export, whose root is the
subtree at path from the original export.
Since subtree outputs a valid export, you can easily pipe its output into
other commands, like
cat export.txt | nu subtree /path/to/tree | nu stats
nu prune [path] <export.txt
If you are not interested in a part of the export, you can remove a specific
subtree with the prune command. The command receives a mandatory argument
path that identifies the subtree to remove. The path needs to be an absolute
path, e.g. /path/to/tree. The command prints to stdout a new export, which is
equivalent to the one passed in input except for the absence of the node at
path and all of its descendants.
If you want to remove more than one subtree, you can use multiple invocations to
nu and pipe them together:
cat export.txt | nu prune /first/tree | nu prune /second/tree
This software is released under the MIT license.