0

パラメーターの無制限のリストをファイルに送信する必要がある割り当てがあります。ファイルは、次の方法で繰り返される文字列を出力する必要があります。

NumNumNumCharCharChar...

  • 文字

続く 3 つの数字はすべて同じであり、次の 3 つの文字、さらに別の 3 つの数字、さらに別の 3 つの文字も同じです。文字列は、数字で始まり、文字で終わる必要があります。

この問題を解決するために、/のみ を使用できます — あなた次第です。これは、解決策が正規表現であることを意味します。grepegrep

OK、これは私がegrepのためにやろうと思ったことです:

egrep "^([0-9][0-9][0-9][a-b][a-b][a-b])\1*$"
4

1 に答える 1

0

あなたの試みはほぼ正しいです。後方参照\1には、一致するパターンではなく、一致する文字列の繰り返しが必要になります。代わりにパターンを繰り返してください。繰り返しの中で、後方参照が必要です。

egrep '^(([0-9])\2{2}([a-z])\3{2})+$' file

シェルスクリプトの微調整として、一重引用符に切り替え(二重引用符は安全性が低くなります)、小文字のクラスをに拡張しました[a-z]。外側の括弧はグループ1であるため、内側の括弧で囲まれた式への逆参照はとになり\2ます\3

于 2012-12-29T16:09:49.917 に答える