Giter Club home page Giter Club logo

orang's Introduction

Orang

Orang is a cross-platform command-line tool for:

All these commands are powered with .NET regular expression engine.

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

Note: Orang requires .NET Core Runtime 3.1 or higher.

How to Use

orang [command] [parameters]

Basic Commands

For a list of all commands please see Orang Command-Line Reference

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

Matches Across 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.

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

Capitalize first character in a sentence

orang's People

Contributors

atifaziz avatar josefpihrt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.