Orang
Search, replace, rename and delete directories, files and its content using the power of .NET regular expressions.
Install / Use
/learn @josefpihrt/OrangREADME
Orang <img align="left" width="48px" height="48px" src="images/orang-logo-small.png">
Orang is a cross-platform command-line tool for:
- searching files, directories and files' content,
- replacing files' content,
- copying files and directories,
- moving files and directories,
- renaming files and directories,
- deleting files, directories or its content,
- synchronizing content of two directories,
- spellchecking files' content,
- executing Regex functions such as match or split
All these commands are powered with .NET regular expression engine.
Requirements
Orang requires .NET Core Runtime 3.1 or higher.
How to Install
Orang is distributed as a .NET Core global tool. To install Orang run:
dotnet tool install -g orang.dotnet.cli
To install non-alpha version run:
dotnet tool install -g orang.dotnet.cli --version <VERSION>
To update Orang run:
dotnet tool update -g orang.dotnet.cli
How to Use
orang [command] [parameters]
Basic Commands
For a list of all commands please see documentation.
How to Learn
For a full list of commands, parameters and parameter values run:
orang help [command] [-v d]
For a full manual run:
orang help -m [-v d]
For a full list of .NET regular expressions syntax run:
orang list-patterns
Features
Single match can span over multiple lines
Orang supports matches across multiple lines.
Dry run
The option -d, --dry-run gives you opportunity to see the results before you actually replace, rename or delete anything.
Display match and replacement side-by-side
The option -t, --highlight with values m[atch] r[eplacement] gives you opportunity to see the match and the replacement side-by-side in the output.
Use C# code to compute replacements
Use -r, --replacement <EXPRESSION> cs[harp] syntax to specify C# inline expression.
The expression is considered to be expression-body of a method with signature string M(Match match)
Use -r, --replacement <CODE_FILE_PATH> cs[harp] f[rom-file] syntax to specify C# code file.
This code file must contain public method with signature string M(Match match).
Load pattern from a file
The more complicated a pattern is, the less readable it becomes when written in one line.
orang find --content "(?x)(?<=(\A|\.)\s*)\p{Ll}\w+\b"
The option f[rom-file] gives you opportunity to store pattern in a file where it can be formatted.
orang find --content "pattern.txt" from-file
or
orang find -c "pattern.txt" f
Note: Replacement string can be store in a file as well.
Sample Command
Goal: Capitalize first character of a word at the beginning of the text or at the beginning of a sentence.
File pattern.txt has following content:
(?x) # set multiline option
(?<= # is preceded with
(\A|\.) # beginning of text or a dot
\s* # zero or more white-space characters
)
\p{Ll} # lowercase letter
\w+ # one or more word characters
\b # word boundary (between word and non-word character)
orang replace ^
--extension txt ^
--content "pattern.txt" from-file ^
--replacement "char.ToUpper(match.Value[0]) + match.Value.Substring(1)" csharp ^
--highlight match replacement ^
--display path=omit summary ^
--dry-run
or
orang replace -e txt -c "pattern.txt" f -r "char.ToUpper(match.Value[0]) + match.Value.Substring(1)" cs -t m r -y p=o su -d

Links
Related Skills
qqbot-channel
351.2kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.5k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
351.2kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Design
Campus Second-Hand Trading Platform \- General Design Document (v5.0 \- React Architecture \- Complete Final Version)1\. System Overall Design 1.1. Project Overview This project aims t
