0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

grep/sed コマンドの代替としての StreamRelay.NET.exe

Last updated at Posted at 2021-03-29

はじめに

じつはgrepもsedも使いこなしていないので、代替になるかどうかは分からないけど、正規表現での検索と置換を実装してみた。


grep/sed コマンドの代替としての StreamRelay.NET.exe

ver3.8.0.0 より、.NET Framework標準の正規表現機能(System.Text.RegularExpressionsクラス)をスクリプト実装のプラグインの一つとして実装した。

オプションとしては「-RegularExpressionMatch」と「-RegularExpressionReplace」がそれである。


使用上の注意(入出力ストリームの文字列化(Byte配列からChar配列へ))

正規表現なので、ストリームからの入力データを文字列として扱う「-LocalCharset」などのオプションがないと面白い結果は出ないと思う。


「-RegularExpressionMatch」オプション

-RegularExpressionMatch 正規表現

というような正規表現のオプションを一つ受けて、それにヒットした行だけを通過させる。

例えば、

C:\>type abc.txt
abc
123
aabc
C:\>StreamRelay.NET.exe -LocalPort 0 -RemotePort 0 -LocalCharset SHIFT_JIS -LocalInputFile abc.txt -RegularExpressionMatch aa+
aabc

「-RegularExpressionReplace」オプション

-RegularExpressionReplace 正規表現 置換文字列

というような正規表現と置換文字列のオプションを2つ受けて、それにヒットした部分を置換して通過させる。

例えば、

C:\>type abc.txt
abc
123
aabc
C:\>StreamRelay.NET.exe -LocalPort 0 -RemotePort 0 -LocalCharset SHIFT_JIS -LocalInputFile abc.txt -RegularExpressionReplace "(a+)" "zz**$1**zz"
zz**a**zzbc
123
zz**aa**zzbc

正規表現のリファレンス

.NET Framework標準のリファレンスは「正規表現言語 - クイック リファレンス


目次へ戻る

目次というか最初の一歩

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?