grep -Eo -m 1最初の一致後に追加の文字を含めます(角括弧内の文字を単一のパターンとして扱います)。

grep -Eo -m 1最初の一致後に追加の文字を含めます(角括弧内の文字を単一のパターンとして扱います)。

私はこの答えを見つけました:grepのグループマッチングに追加の文字が含まれています。しかし、anwserは私にとってはうまくいきません。

私のjsonファイルには次の行があります。

"object.0.1_foo": {  

この場合は単に一致させたい、:他の場合は一致させたいと思います{

grep -Eo -m 1 '[\:\{\}\[\]' <<<$object

返品: {

私が理解したところ、括弧内の文字のみを検索し、最初の一致のみを要求した場合は、次のようになります。:

\:\{grepはこれを単一の「文字」として扱うようです。私にとって本当に奇妙なことは、この正規表現を使用する場合です。

grep -Eo -m 1 '[^\s][\:\{\}\[\]' <<<$object

grepが:と{を2つの異なる文字で返された空白として扱うように強制する試みを除外します。

":

これは"私の正規表現に全くないので本当に混乱しています。

単一の一致のみを取得するために正規表現を調整する方法がわかりません。

答え1

-m 11試合後に停止ワイヤー;一致する文字が2つあるため、印刷さ-oれます(2つの別々の行にある必要がありますが)。

また、文字は内部的にリテラルなので、それ以外の単一文字と[..]一致[^\s]します。あなたが考える限り、これはリードです。\s"

本当に帰りたいなら:、必要なのはこれだけです。grep -o ':'

関連情報