version 1.1.3
The ACU utility
Everything the website does — in the terminal and without limits: batch processing of files and directories, parsing unstructured logs with GROK. Free.
Choose your system
The installer puts the utility into the system; the archive is unpacked and run in place.
Windows
your systemmacOS
your systemInstaller
Archive
Linux
your systemUbuntu 24.10
Ubuntu 25.04
Debian 12
Astra Linux 1.8
Fedora 44
Fedora 42
openSUSE 16.0
openSUSE 15.6
ALT Linux 11.0
ALT Linux 11.1
Alpine 3.24
FreeBSD
your systemSolaris
your systemSHA-256 checksums
- SetupACU-1.1.3.exe
b787e3f5ee4d3b8fde1b720b39b4fcee4536d31fa75066cd6863ecdfd6d05d17 - acu-macos-installer-arm64-1.1.3.pkg
ff3c34548b1a2b8a3a408f6a0afb958e0ee3eba0e47c959981eb2778e27cd88b - acu-macos-installer-x86_64-1.1.3.pkg
cd79eae75bbc96c9f88a581a879965f08e291772d86cc8b43d761f8cdd859e90 - acu_1.1.3_MacOSX_arm64.tar.gz
02ba8e39bea2fe2bba35edcac0b8792d6a06f09239b0e996ef5efd7eda81ecc5 - acu_1.1.3_MacOSX_amd64.tar.gz
e1a0e23e26947b6be883984d6040e9994d40dd36ea7cdbbf6f01cabcdebe3a2b - acu_1.1.3-1~oracular_amd64.deb
ffe48e4bad083014a26492a7e354de84b03b5189819434e15da07b50b8a1e985 - acu_1.1.3_Ubuntu24.10_amd64.tar.gz
3cf7d7e445bd71527e44dd4517e9e5bd9a80af21d8cafaf0131bd09338e95bfc - acu_1.1.3-1~plucky_arm64.deb
af8e8b8a91d89e063b7d89e1c5bd7d392c37e0b2aad7c039c04fc62d6dae319a - acu_1.1.3_Ubuntu25.04_aarch64.tar.gz
1b16c9b1eafc67d7c5eaf49f62324536c458ffcab23c316445bc6fd9d2d84e34 - acu_1.1.3-1~bookworm_amd64.deb
869c791215505dce762e223cab238517ec46792e510e6986b7dd4b3d548c39f0 - acu_1.1.3_Debian12_amd64.tar.gz
a4c2b2d8d5ab05dcfbff09e4c41728b5d755944c2ce5775612edb3c8ca28e587 - acu_1.1.3-1~1.8_x86-64_amd64.deb
f063096c50fb0488aed6b1d7ed1015a5eae4bddbaf38b1e01a4e9cf38404b292 - acu_1.1.3_Astra1.8_x86-64_amd64.tar.gz
a6316388476b44d95a1c8696b5cba616c324c0857d76415e419bd0a141c84e80 - acu-1.1.3-1.Fedora44_amd64.rpm
8da318fafb91867e73893006677b4032e25ad213f908b545044b8767c010f7c7 - acu_1.1.3_Fedora44_amd64.tar.gz
65e50a834d8740c93b5f80e11da371f0ea7e654bdb2cf4cb15ca4bf7ce6618b6 - acu-1.1.3-1.Fedora42_aarch64.rpm
048005552bd9be36be50d205b6d5fc4c5ad08e80e0fc4cb27443b510f035736c - acu_1.1.3_Fedora42_aarch64.tar.gz
8992b1c60103f513d55d5b4bf27f95bdd2eac1a74d29e581808670f87f5c3bad - acu-1.1.3-1.openSUSE16.0_amd64.rpm
a64b2021121b31cfdc462ca32071c05f499305cd7f1fb25ad8b730d191bfd81e - acu_1.1.3_openSUSE16.0_amd64.tar.gz
0b336777d91af737435732745e0147bb46dfb7f7e41d12814ed28676785d558d - acu-1.1.3-1.openSUSE15.6_aarch64.rpm
e62b5755cfe327f0369a6563452e388e415d2130a712a02137a07015aff2f7c1 - acu_1.1.3_openSUSE15.6_aarch64.tar.gz
72574c570c1559d9e408f975d9d2460396af624f0c54b3a29b0bcb3dc09d39d9 - acu-1.1.3-1.ALT11.0_amd64.rpm
0f92e458deb9d6ffc43620cbcaa8bf7d95b29c05e47ad4ac44f632040eae95dd - acu_1.1.3_ALT11.0_amd64.tar.gz
9fb239edd7c0057b1e67a540ec6b80419706e96834d18722a6b2c69d52cf1048 - acu-1.1.3-1.ALT11.1_aarch64.rpm
eace38a9c96b47495f4e61d4068404cd3d9e1586c098a5b8f1d3e3930a152964 - acu_1.1.3_ALT11.1_aarch64.tar.gz
9bf025d9b12c2b9bc493ff5a6766e4f428fd697b0e4207fe29c4ea55fa7a8035 - acu_1.1.3_Alpine3.24.1_amd64.tar.gz
daa6ae6ed180b15c2ea2256c6c4047e1a3e48193302568511bd53ea1813dde87 - acu_1.1.3_FreeBSD_amd64.tar.gz
fcb280891191274c294484ef46433ed05406be4f2ff520d6095f72e83f9cd405 - acu_1.1.3-1_i86pc.p5p
6334e266b30bec6c3061e5c18f2896dfe916a469c4e07921b747e2a57d0f854e - acu_1.1.3_Solaris_amd64.tar.gz
03fd59e205e32b2febd68d117d63231782e2b59ae9e5efdfa72ded7a4fb4a35c
Format compatibility
A row is the source format, a column is what it can be converted to.
| From \ to | XML | JSON | YAML | INI | CSV | CEF | SysLog |
|---|---|---|---|---|---|---|---|
| XML | ✓ | ✓ | ✓ | ✓ | — | — | — |
| JSON | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| YAML | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| INI | ✓ | ✓ | ✓ | ✓ | — | — | — |
| CSV | ✓ | ✓ | ✓ | — | ✓ | — | — |
| CEF | ✓ | ✓ | ✓ | — | — | — | — |
| SysLog | ✓ | ✓ | ✓ | — | — | — | — |
| GROK | ✓ | ✓ | ✓ | — | — | — | — |
GROK is input only: the expression splits log lines into fields.
Examples
Data comes from standard input or the -src key; the result goes to standard output or to a file with the -dest key.
BASE64 & hashes
Text to BASE64
$ echo 'Hello World!!!' | acu -from text -to base64
BASE64 to text
$ echo 'SGVsbG8gV29ybGQhISE=' | acu -from base64 -to text
Text to MD5
$ echo 'Hello World!!!' | acu -from text -to MD5
Text to HMAC SHA256
$ echo 'Hello World!!!' | acu -from text -to SHA256 -hmac 236bf30c70dc03f69175f030afbe38f3
Data formats
JSON to XML
$ echo '{"Hello": "World!!!"}' | acu -from json -to xml -prettify
JSON to XML from a file
$ acu -from json -to xml -src ./example.json -prettify # or write to a file $ acu -from json -to xml -src ./example.json -dest ./result.xml -prettify
CSV to XML from a file
$ acu -from csv -to xml -src ./example.csv -header -prettify # or write to a file $ acu -from csv -to xml -src ./example.csv -dest ./result.xml -header -prettify
JSON to CSV from a file
$ acu -from json -to csv -src ./example.json -delim "," # or write to a file $ acu -from json -to csv -src ./example.json -dest ./result.csv -delim ","
CEF to XML from a file
$ acu -from cef -to xml -src ./example.txt -cef low -prettify # or write to a file $ acu -from cef -to xml -src ./example.txt -dest ./result.xml -cef low -prettify
GROK to XML without patterns
$ acu -from grok -to xml -src ./example.txt -express ./express.txt -prettify # or write to a file $ acu -from grok -to xml -src ./example.txt -express ./express.txt -dest ./result.xml -prettify
GROK to XML with patterns
$ acu -from grok -to xml -src ./example.txt -express ./express.txt -patterns ./patterns.json -prettify # or write to a file $ acu -from grok -to xml -src ./example.txt -express ./express.txt -patterns ./patterns.json -dest ./result.xml -prettify
A whole directory of JSON to XML
$ acu -from json -to xml -src ./input -dest ./result -prettify
Number bases
Decimal to binary
$ echo "3369" | acu -notation -from 10 -to 2
Decimal to Roman numerals
$ echo "3369" | acu -notation -from 10 -to 1
Binary to decimal
$ echo "0000110100101001" | acu -notation -from 2 -to 10
Text to binary
$ echo "Hello World" | acu -notation -from 0 -to 2
Binary to text
$ echo "0110010001101100011100100110111101010111001000000110111101101100011011000110010101001000" | acu -notation -from 2 -to 0
Date and time
Date from a timestamp
$ echo "1740268539834" | acu -date -from timestamp -to date -formatDate "%a, %d %b %Y %H:%M:%S %Z"
Timestamp from a date
$ echo "Sun, 23 Feb 2025 02:55:39 MSK" | acu -date -to timestamp -from date -formatDate "%a, %d %b %Y %H:%M:%S %Z"
Seconds to minutes
$ echo "120" | acu -seconds -from s -to m
Seconds to hours
$ echo "16200" | acu -seconds -from s -to h
Seconds to days
$ echo "1555200" | acu -seconds -from s -to d
Seconds to weeks
$ echo "1555200" | acu -seconds -from s -to w
Seconds to months
$ echo "7884000" | acu -seconds -from s -to M
Seconds to years
$ echo "7884000" | acu -seconds -from s -to y
Currency
Dollars to roubles
$ echo "100" | acu -currency -from usd -to rub
Bitcoin to dollars
$ echo "0.5" | acu -currency -from btc -to usd
Roubles to USDT
$ echo "10000" | acu -currency -from rub -to usdt
With a CoinGecko API key
$ echo "100" | acu -currency -from eur -to gram -apiKey CG-xxxxxxxxxxxxxxxxxxxxxxxx
Data size
Bytes to kilobytes
$ echo "4096" | acu -bytes -from b -to Kb
Bytes to megabytes
$ echo "4096" | acu -bytes -from b -to Mb
Bytes to gigabytes
$ echo "34896609280" | acu -bytes -from b -to Gb
Bytes to terabytes
$ echo "3188583720550.4" | acu -bytes -from b -to Tb