나는 이 대답을 찾았습니다:grep의 그룹 일치에 추가 문자가 포함되어 있습니다.그러나 anwser는 나를 위해 작동하지 않습니다.
내 json 파일에는 다음과 같은 줄이 있습니다.
"object.0.1_foo": {
이 경우에는 그냥 일치시키고 싶고 :
다른 경우에는 일치시키고 싶습니다 {
.
grep -Eo -m 1 '[\:\{\}\[\]' <<<$object
반품: {
내가 이해한 바에 따르면 괄호 안의 문자만 검색되며 첫 번째 일치 항목만 요청하면 다음을 얻어야 합니다.:
\:\{
grep이 이를 단일 "문자" 로 취급하는 것 같습니다 . 나에게 정말 이상한 점은 이 정규식을 사용하는 경우입니다.
grep -Eo -m 1 '[^\s][\:\{\}\[\]' <<<$object
grep이 : 및 {를 서로 다른 두 문자로 반환된 공백으로 처리하도록 강제하려는 시도를 제외합니다.
":
이것은 "
내 정규식에 전혀 없기 때문에 정말 혼란스럽습니다.
단일 일치 항목만 얻기 위해 정규식을 조정하는 방법을 모르겠습니다.
답변1
-m 1
1경기 후 중지철사; 일치하는 문자가 두 개 있으므로 -o
인쇄됩니다(두 개의 별도 라인에 있어야 함에도 불구하고).
또한 문자는 내부적으로 리터럴이므로 또는 이 아닌 단일 문자와 [..]
일치 [^\s]
합니다 . 당신이 생각하는 한, 이것이 리드입니다 .\
s
"
정말로 돌아가고 싶다면 :
, 필요한 것은 이것뿐입니다.grep -o ':'