Friday, July 15, 2005

Shell.NET - A Collection of C# Command Line Utilities

The Code Project - Shell.NET - C# Programming

"Shell.NET is a set of console applications written in C#. It features some classical Unix applications like basename, cal, grep, tr, uniq, wc, but also some very unique tools like RunScript or TextTransform, a awk-like text processing application accepting scripts written in any of the languages supported by the installed .NET Framework.

...

As of today Shell.NET is made of more than 30 applications:


Basename - Strip filename affixes
Cal - Print calendar
Decho - Echo arguments
Factor - Factor a number
Grep - Search for a text pattern in files
Head - Display top lines of files
ImageBuilder - Build an image from a pattern and a text string
Pwd - Print working directory
Reverse - Reverse lines of a file
RunScript - Compile and execute .NET scripts
SameFiles - Determine whether 2 files are the same
SortLines - Sort or merge files
Tail - Display last lines of files
Tee - Pipe fitting
TextMerge - Cut and merge text files
TextReplace - Replace text patterns
TextTabs - Expand or compress tabs
TextTransform - Text files manipulation
Touch - Update file timestamp
Translate - Translate characters
Uniq - Report repeated lines
Where - Search for files
Which - Find which version of a program is active
WordCount - Count characters, words, and lines
WShell - A Windows form interface for most of the Shell.NET utilities like Grep, TextTabs, TextReplace,...

XmlQuery - Extraction data from xml files.
XmlRichDocument - Build rich xml document file from an assembly
XmlTransform - Xml files manipulation
XmlValidate - Validate xml files against a dtd, xdr, or xsd schema file. ..."


There are some interesting items in this collection, all of which include the source (which makes me a happy coder... :)

Looks like the source is a couple years old, but as long as we HAVE the source and it works, that's just fine.

1 comment:

Anonymous said...

Projects like this one are cool as proofs of concept (compare, for example, Perl Power Tools), but their practical value is limited compared to full-blown ports of the Unix toolkit utilities such as Cygwin and the MKS Toolkit. Cygwin is GNU/Linux-compatible and the MKS Toolkit is fully POSIX-compliant.

The XML utilities look interesting. I wonder if they're modeled on any existing XML command-line utilities like xmllint. Presumably, if written well, the source code for these utilities might serve as a good primer for doing low-level XML programming in C# and, by extension, other .NET language.