$a를 $b와 일치시키기 위해 다음 명령을 작성했지만 값에 "-"가 포함되면 오류가 발생합니다. 이것을 어떻게 피할 수 있습니까?
# a="-Xmx5324m"
# b="-Xmx5324m"
#
#
# echo "$a" | grep -Fxc "$b"
grep: conflicting matchers specified
답변1
--
패턴 앞에 배치 :
echo "$a" | grep -Fxc -- "$b"
--
많은 명령/쉘 내장 기능에 대한 명령 끝 옵션을 지정합니다. 이후 나머지 인수는 위치 인수로 처리됩니다.
답변2
@sebasth의 훌륭한 답변 외에도,당신은 그것을 사용할 수 있습니다grep's -e
패턴에 대한 옵션으로 PATTERN을 사용합니다( <<<
zsh
여기 문자열 연산자가 대신 사용됩니다 echo
. 이식성도 참조하세요 printf '%s\n' "$a"
).
grep -Fxc -e "$b" <<<"$a"
또는 다른 옵션에 추가로.
grep -Fxce "$b" <<<"$a"
당신의 목표는 바이트 단위이기 때문에문자열 동등 비교대신 이 명령을 사용하십시오 [
.
if [ "$a" = "$b" ]
또는 $a
포함된 경우 ksh 구성을 $b
사용하십시오 .[[...]]
if [[ $a == *"$b"* ]]
또는 Bourne과 유사한 모든 쉘에서 더 이식성이 뛰어납니다.
case $a in
*"$b"*) ...
esac