Bashで正規表現として提供される文字列を生成してパイプする方法別のコマンドで?
たとえば、
> $RANDOM | regex "{abcdef\d}[8]" | grep "1{3}" | less
ベースにできるユーティリティが見つかりませんでした。正規表現特殊
正規表現が入力されます。正規表現に基づいて文字列を生成するユーティリティを探したいです。
たとえば、
$ regex "{abcdef\d}[8]" -n 10 b8789a62 97303666 8b536c28 79590607 6d80ad60 78d36ded aa001d9a 8826f276 df1e1f7a 854307db
2つの制限事項:
- 反復演算子が指定されたテキストを生成することが許可される回数は、一部の内部(見えない)数によって制限されます。
- 生成される文字列の数は、ユーザーが指定した数によって制限されます。
ベストアンサー1
各行に8つの小文字の16進数を含む行ストリームを取得するには、次のようにします。
tr -c -d '0-9a-f' </dev/random | fold -w 8
これは/dev/random
興味のない文字を読み取って削除しますtr
。 fold
次に、ストリームを8つの文字行に切り捨てるために使用されます。
tr
別の文字セットを選択するには、選択式を変更してください。fold
より長いまたは短い文字列を取得するには、長さを変更します。grep
生成された文字列から他の基準を満たす文字列を選択するには、パイプラインにステップを追加します(たとえば、grep 111
3つの連続許可のみを使用)1
。