aki-gsub

the substitude text program.

Features

Command help

aki-gsub --help

``` Usage: aki-gsub [options]

substitude text command, replace via regex.

Options: --color use markers to highlight the matching strings -e, --exp regular expression -f, --format replace format -n, --quiet no output unmach lines

-H, --help display this help and exit -V, --version display version information and exit

Option Parameters: 'always', 'never', or 'auto' regular expression can has capture groups format can has capture group: $0, $1, $2, ...

Environments: AKIGSUBCOLORSEQST color start sequence specified by ansi AKIGSUBCOLORSEQED color end sequence specified by ansi

Examples: Leaving one character between 'a' and 'c', converts 'a' and 'c' on both sides to '': echo "abcabca" | aki-gsub -e "a(.)c" -f "\$1" result output: *bba

Converts 'a' to '' and 'c' to '@': echo "abcabca" | aki-gsub -e "a" -f "" -e "c" -f "@" result output: b@b@* ```

Quick install

  1. you can install this into cargo bin path:

cargo install aki-gsub

  1. you can build debian package:

cargo deb

and install .deb into your local repository of debian package.

Examples

Example 1: simple replacements

Leaving one character between 'a' and 'c', converts 'a' and 'c' on both sides to '*'.

command line: echo "abcabca" | aki-gsub -e "a(.)c" -f "*\$1*"

result output: *b**b*a

The \$1 mean 1st capture.

Example 2: extracting email address

This extracts the email address and prints the name and address in commas.

command line: echo "From:Red bear<aki.akaguma@example.com>" | aki-gsub -e "From: ?(.*)<([\w\d_.-]+@[\w\d_-]+\.[\w\d._-]+)>" -f "\$1, \$2"

result output: Red bear, aki.akaguma@example.com

The \$1 mean 1st capture. The \$2 mean 2nd capture.

Example 3: multiple format

You can specify multiple formats. See following.

command line: echo "xxx yyy zzz" | aki-gsub -e "x(x)x" -f "a\$1a" -e "y(y)y" -f "b\$1b"

result output: axa byb zzz

The \$1 mean 1st capture.

Library example

See [fn execute()] for this library examples.

Changelogs

This crate's changelog here.

License

This project is licensed under either of

at your option.