複数の行と、(ファイル全体で) 1 回だけ出現する可能性のある特定の文字を含むファイルがあります。どのファイルが保持されているかを確認する方法が必要です。
私が持っているとしましょう
1. 00000
2. 00050
3. 05500
4. 00000
5 は 1 回しか発生しません。bash とgrepを使用して、このファイルに不正な形式のフラグを付けるにはどうすればよいですか?
最初にどの行に 5 が含まれているかを確認すると思います。複数の行がある場合は、停止します。次に、その行に複数の 5 があるかどうかを確認します。ある場合は停止します。これを行うより良い方法はありますか?
今、私は次の方法で行を数えます
grep "5" file | wc -l.
複数ある場合はやめましょう。そうでない場合は、その 1 行に進みます。では、5 がいくつあるのかをどうやって数えますか? 最初は 5{1} を使用しましたが、うまくいかないようです。文字列が「55」の場合、そこにあるすべての 5 に一致するだけですが、最大 1 つの 5 が必要です。次に、5 が複数あるかどうかを確認し、複数ある場合は停止することにしました。ただし、5{2,} は、互いに複数の 5 がある場合にのみ機能します。一方で、
.*5.*5.*
は 5 が 2 つ以上ある単語のみに一致しますが、とてもグロテスクに見えます...
より良い提案はありますか?あると思いますが、今日は夕方で、これが今日の私の脳の限界です。申し訳ありません。grep しか使えないことを覚えておいてください。