murex
tidy-viewer
Our great sponsors
murex | tidy-viewer | |
---|---|---|
54 | 28 | |
1,356 | 2,012 | |
- | - | |
9.7 | 4.3 | |
10 days ago | 7 days ago | |
Go | Rust | |
GNU General Public License v3.0 only | The Unlicense |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
murex
- Xonsh: Python-powered, cross-platform, Unix-gazing shell
-
The Bun Shell
I agree. I’ve written about this before but this is what murex (1) does. It reimplements some of coreutils where there are benefits in doing so (eg sed, grep etc -like parsing of lists that are in formats other than flat lines of text. Such as JSON arrays)
Mutex does this by having these utilities named slightly different to their POSIX counterparts. So you can use all of the existing CLI tools completely but additionally have a bunch of new stuff too.
Far too many alt shells these days try to replace coreutils and that just creates friction in my opinion.
-
Jaq – A jq clone focused on correctness, speed, and simplicity
This is exactly what Murex shell does. It has lots of builtin tools for querying structured data (of varying formats) but also supports POSIX pipes for using existing tools like `jq` et al seamlessly too.
-
The Case for Nushell
Stable is a problem because a lot of these shells don’t offer any guarantees for breaking changes.
My own shell, https://github.com/lmorg/murex is committed to backwards compatibility but even here, there are occasional changes made that might break backwards compatibility. Though I do push back on such changes as much as possible, to the extent that most of my scripts from 5 years ago still run unmodified.
- FLaNK Stack Weekly for 20 June 2023
-
Nushell.sh ls – where size > 10mb – –sort-by modified
This is similar to how my shell works. It still just passes bytes around but additionally passes information about how those bytes could be interpreted. A schema if you will. So it works as cleanly with POSIX / GNU / et al tools as it does with fancy JSON, YAML, CSV and other document formats.
It basically sits somewhere between Powershell and Bash: typed pipelines like Powershell but without sacrificing familiarity with all the CLI commands you already use day in and day out.
https://github.com/lmorg/murex
As an aside, I’m about to drop a massive update in the next few days that will make the shell even more intuitive to use.
-
VanadiumOS: Portable, multi-user Unix-like OS
It's possible without any kernel changes. My shell (https://github.com/lmorg/murex) already supports doing that.
The way it works is it uses fd3 to communicate schema information so it can natively support all the existing "dumb" pipes without any modification but any new tools can be written to send objects instead (albeit byte encoded).
It's not as elegant as PowerShell sending .NET objects natively, but then PowerShell doesn't work with existing CLI tools natively (it needs wrapper scripts to convert them into PowerShell commands). Whereas my shell is fully backwards compatible while still supporting a suite of additional functionality too.
-
Shell Script Best Practices, from a decade of scripting things
> getting the shell quoting hell right
Shameless plug coming, it this has been a pain point for me too. I found the issue with quotes (in most languages, but particularly in Bash et al) is that the same character is used to close the quote as is used to open it.m. So in my own shell I added support to use parentheses as quotes in addition to the single and double quotation ASCII symbols. This then allows you to nest quotation marks.
https://murex.rocks/docs/parser/brace-quote.html
You also don’t need to worry about quoting variables as variables are expanded to an argv[] item rather than expanded out to a command line and then any spaces converted into new argv[]s (or in layman’s terms, variables behave like you’d expect variables to behave).
-
Enter a command to see help text for each arg
Some shells have this built in, like Fish and my own one ( https://murex.rocks ) too
- Everything you ever wanted to know about terminals(but were afraid to ask)
tidy-viewer
- Csvlens: Command line CSV file viewer. Like less but made for CSV
-
Are there any TUI apps you recommend outside of ncdu / nnn / htop / vim / bat / fd / tig / duf?
I work with data a lot so I use the sqlite cli. I also made tv (self-promotion) to view csvs.
-
One-liner for running queries against CSV files with SQLite
I am a data scientists. I have used a lot of tools/libraries to interact with data. SQLite is my favorite. It is hard to beat the syntax/grammar.
Also, when I use SQLite I do not output using column mode. I pipe to `tv` (tidy-viewer) to get a pretty output.
-
What are some of your favorite CLI/TUI apps?
tv (cat for csvs) - https://github.com/alexhallam/tv
- Tidy Viewer is a cross-platform CLI csv pretty printer that uses column styling to maximize viewer enjoyment.
-
TV is a cross-platform CSV pretty printer made to maximize viewer enjoyment
1. Looks like 0.0.13 the current version is 0.0.13
2. I need to update the README the binaries are here https://github.com/alexhallam/tv/releases/tag/0.0.13
Ah, I didn't mean a newline at the end of the output. Just a space after your shell prompt ($), see e.g. https://github.com/alexhallam/tv/blob/main/img/column_v_tv2.....
https://github.com/alexhallam/tv/pull/58
I added VisiData in my README and represented it in a positive light in the description. Again, just wanted to apologize for my mistake.
#better-together
And a list of options. Reading the first 80 lines of https://github.com/alexhallam/tv/blob/main/src/main.rs was in some sense more educational than the readme.
It, for example, allowed me to make an educated guess as to the answer to the question “how does this handle huge files?”. It by default only reads 25 lines.
(That makes the example from the header:
cat diamonds.csv | head -n 35 | tv
What are some alternatives?
visidata - A terminal spreadsheet multitool for discovering and arranging data
elvish - Powerful scripting language & Versatile interactive shell
nushell - A new type of shell
fx - Terminal JSON viewer & processor
xonsh - :shell: Python-powered, cross-platform, Unix-gazing shell.
jc - CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.
zsh-history-substring-search - 🐠 ZSH port of Fish history search (up arrow)
xsv - A fast CSV command line toolkit written in Rust.
LIPS - Scheme based powerful lisp interpreter in JavaScript
StyLua - An opinionated Lua code formatter
ShellCheck - ShellCheck, a static analysis tool for shell scripts
csview - 📠 Pretty and fast csv viewer for cli with cjk/emoji support.