次のパターンがあるかどうかを確認するためにファイルを検索したいと思います
text1,text2,[1.2.3,3.4.5,6.7.8,etc]
。角カッコ内のカンマ数は定義されていません。
私は次のコマンドを試しましたが、その後にカンマが印刷されましたが、text1
これはtext2
私が望むものではありません。私は角かっこ内のカンマを探しています。
$ grep -E '[*,*]' myfile.txt
編集#1
以下は、いくつかのサンプル入力です。括弧内のカンマは、例の数より大きくても小さくてもかまいません(つまり、未定義の数であるため、正規表現を使用してキャプチャする必要がありました)。
1.com,1.2.3.4,txt1,txt11,['1.2.3.4', '5.6.7.8']
2.com,3.4.5.6,txt2,txt21,['5.6.6.6']
3.com,5.5.5.5,txt3,txt31,['1.1.1.1', '2.2.2.2', '3.3.3.3']
答え1
角かっこ内に1つ以上のカンマを含む行を一致させるには、次のようにします。
grep '\[.*,.*\]'
前任者。
$ grep '\[.*,.*\]' file
1.com,1.2.3.4,txt1,txt11,['1.2.3.4', '5.6.7.8']
3.com,5.5.5.5,txt3,txt31,['1.1.1.1', '2.2.2.2', '3.3.3.3']
角括弧は正規表現構文で特別な意味を持つため、エスケープする必要があります。-E
withを使用する必要はなく、grep
withの基本パターンマッチング機能でgrep
十分です。
メモ: grep
一致を色で表示するのが一般的であるため、使用するパターンが実際に一致するパターンが何であるかがわかります。