comma 1.0.0

Shell-style command parser with support for escaping and quotations.
Documentation

comma

Crates.io docs.rs Build Status

comma splits shell-style commands, e.g. sendmsg joe "I say \"hi\" to you!", into a list of individual tokens. It correctly handles unicode characters, escape sequences, and single- or double-quoted strings.

Cargo

[dependencies]
comma = "1.0.0"

Usage

use comma::parse_command;

fn main () {
    let parsed = parse_command("sendmsg joe \"I say \\\"hi\\\" to you!\" 'but only\\ntoday'").unwrap();
    println!("Result: {:#?}", parsed); // Result: [ "sendmsg", "joe", "I say \"hi\" to you!", "but only\ntoday" ]
}