$ a와 $ b를 일치시키기 위해 다음 명령을 작성했지만 값에 "-"가 포함되면 오류가 발생합니다. 어떻게 피할 수 있습니까?
# a="-Xmx5324m"
# b="-Xmx5324m"
#
#
# echo "$a" | grep -Fxc "$b"
grep: conflicting matchers specified
그건 그렇고, 실제로 정규 표현식 일치를 원합니까, 아니면 문자열이 다른 문자열과 같은지 또는 하위 문자열인지 테스트하고 싶습니까? 이 경우 쉘이 내장되어
—
Uwe
[[ ... ]]
있거나 case
더 나은 선택이 될 것입니다. 왜냐하면 당신은 특유의 echo
자식 프로세스와 자식 프로세스 를 피하기 때문 입니다.
문자열이 같은지 여부는 내 테스트입니다
—
yael
아무도 나열하지 않은 다른 대안은 인용 된 문자열 내부에서 대시를 이스케이프 처리 할 수 있으므로
—
Aaron
grep
옵션 시작이 아닌 리터럴 문자로 이해됩니다 . 즉 echo test-test | grep "\-test"
알 수없는 -t
플래그 에 대해 불평하기보다는 일치 합니다.
grep -Fxc -- "$b" <<< "$a"
불필요한 파이프를 피하기 위해 명령 변경을 고려하십시오