BomSweeper is a command-line tool that finds the files starting with a UTF-8 Byte Order Mark (BOM) in the directory tree and removes BOMs from those files.
Get started
BomSweeper is available as the
NuGet
package, so it can be installed as follows:
dotnet tool install -g BomSweeper.GlobalTool
Synopsis
bomsweeper[-CDIR] [-DN] [-RVhv] [--] PATTERN...
Description
The PATTERN arguments represent the glob patterns that match the paths of the files to find.
The path separator in the pattern must be a slash ('/') character
regardless of the platform. The directory names . and .. in the pattern
are not interpreted specially (that is, . and .. do not mean the current
and parent directory, respectively). So, for example, the pattern
foo/../bar/baz.cs does not match bar/baz.cs.
Note that the pattern matching is performed with the relative paths to the current directory, so if the pattern starts with a slash, it does not match any file.
The pattern can contain an asterisk ('*') character as a wildcard, which
matches any character other than a slash zero or more times. It can also
contain a double asterisk ('**'), which represents as follows:
-
if the pattern equals
**, it matches all files in the current directory and in its subdirectories. -
if the pattern ends with
/**(a slash followed by a double asterisk), the subpattern/**matches all files in the directory and subdirectories. -
if the pattern starts with
**/(a double asterisk followed by a slash), the subpattern**/matches the current directory and its subdirectories. For example,**/foomatchesfoo,bar/foo, andbar/baz/foo. -
if the pattern contains
/**/, the subpattern/**/matches a slash, the directories, and subdirectories. For example,foo/**/barmatchesfoo/bar,foo/baz/bar, andfoo/baz/qux/bar.
Options are as follows:
| Option | Description | ||
|---|---|---|---|
-C, |
--directory |
DIR | Change to directory. (Default: .) |
-h, |
--help |
Show help message and exit | |
-D, |
--max-depth |
N | The maximum number of directory levels to search. (Default: 16) |
-R, |
--remove |
Remove a BOM | |
-v, |
--verbose |
Be verbose | |
-V, |
--version |
Show version and exit |
Exit status
BomSweeper exits 0 if no files starting with a UTF-8 BOM are found, and >0 if one or more files are found or if an error occurs.
When the -R or --remove option is specified, it exits 0 on success, and
>0 if an error occurs.
Example
Note that, in the following examples, the glob pattern is enclosed in
apostrophes ('...') to prevent the shell from expanding the pattern.
bomsweeper '**/*.cs'
Find .cs files starting with a UTF-8 BOM in the current directory and
subdirectories.
bomsweeper -R '**/*.cs'
Find .cs files in the current directory and subdirectories, and remove a UTF-8
BOM from the files if any.
Documents
How to contribute
Please send us pull requests or issues from
the
GitHub repository.