Command-line utility for Linux, macOS and Windows performing sophisticated search and replace followed by calling external executables. It can be considered a kind of JSON shell.
Key features:
- reads multiple substitution rules from a JSON5 file with the extension .xnx (using the json5 package);
- implements loops and conditional processing (if-then-else);
- allows staged (chained) rules in .xnx files;
- allows importing (embedding) other .xnx files into a given one (either entire or filtered with an XPATH query);
- supports an application configuration file with the extension .xnxconfig that allows redefining all keywords (keys with special meaning in .xnx files);
- calls any external executables after all placeholders (keys) are replaced with the final values.
- has Azure DevOps extension in a separate project;
- produces multiple configuration files from a single source based on rules;
- produces Flutter application icons as multiple .png files for all platforms from two .svg files (foreground and background);
- produces light and dark multi-dimensional icons from a single .svg file: .icns for macOS, and .ico for Windows;
- natively supports decompression via the archive package for zip, tar, gz, bz2, Z;
- performs search and replace with the multiple outputs in the MS Office files: .docx, .pptx, .xlsx (aka mail merge);
- resolves environment variables in every rule;
- allows passing arbitrary arguments to .xnx files;
- resolves paths in every rule depending on OS it runs under;
- light and dark theme implements in .xnx files commonly needed functions: trim, substr, regex match and replace, full path, file size, date/time math, and more...
Command-line utility for Linux, macOS and Windows. Reads text from files, or stdin/pipe, or from files listed in stdin/pipe, then filters the content. Filtration is based on plain (literal) text strings and/or regular expressions that can be linked to each other by logical operators. The result can be optionally checked upon the number of matches being within the expected range.
Key features:
- understands all major Unicode formats;
- one or more glob patterns for input files;
- input file paths can also be passed via stdin or a pipe;
- plain and regular expression patterns;
- logical operations on patterns: and, or, not;
- multi-line search, and more...