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이 : 및 {를 서로 다른 두 문자로 반환된 공백으로 처리하도록 강제하려는 시도를 제외합니다.

":

이것은 "내 정규식에 전혀 없기 때문에 정말 혼란스럽습니다.

단일 일치 항목만 얻기 위해 정규식을 조정하는 방법을 모르겠습니다.

답변1

-m 11경기 후 중지철사; 일치하는 문자가 두 개 있으므로 -o인쇄됩니다(두 개의 별도 라인에 있어야 함에도 불구하고).

또한 문자는 내부적으로 리터럴이므로 또는 이 아닌 단일 문자와 [..]일치 [^\s]합니다 . 당신이 생각하는 한, 이것이 리드입니다 .\s"

정말로 돌아가고 싶다면 :, 필요한 것은 이것뿐입니다.grep -o ':'

관련 정보