fgrep 또는 grep -F 중 어느 것이 이식 가능한 스크립트에 더 좋습니까? [폐쇄]

fgrep 또는 grep -F 중 어느 것이 이식 가능한 스크립트에 더 좋습니까? [폐쇄]

이에 대한 나의 논란의 여지가 있는 의견이 답변사용해야 하는지에 대한 질문에또는-F휴대성을 위한 스위치(예: ) 가 함께 제공됩니다 grep -F. 현재까지 밝혀진 주요 내용은 다음과 같습니다.

grep -F:

  • POSIX 표준입니다.
  • GNU는 지원 중단을 grep발표했습니다 fgrep.

fgrep:

  • 역사적으로 이는 grep -F옵션보다 먼저 옵니다.
  • GNU grep은 더 이상 fgrep사용되지 않는 것으로 선언되었지만 역사적 사용으로 인해 여전히 이를 고수하는 것 같습니다.

오래된(아주 오래된) 시스템에 대해 생각해 보면 일부 시스템은 그렇지 않다는 것을 알 수 있습니다 grep -F(이런 일이 발생할 가능성은 매우 드물다고 생각합니다). 하지만 정말 아주 오래된 기계에 대해 걱정하고 이에 대한 POSIX 표준을 피할 필요가 있을까요?

이전 시스템(사용할 수 없다고 말되거나 주장되는 grep -F)을 포함하여 현재 상황을 고려하면 지원되는 시스템이 더 많이 있습니다 fgrep.

반면에, 미래를 내다본다면 이는 POXIS 표준으로서 fgrep역사가 되고 승리하게 될 것입니다 .grep -F

또한 이제 더 나은 이식성을 위해 POSIX 표준을 사용하는 것이 상식이 아닙니까?

답변1

grep -FPOSIX입니다. fgrep아니요. 스크립트를 사용 grep -F하고 POSIX에 의존한다는 점을 분명히 하세요 grep. 필요한 것은 명시적으로 선언된 종속성뿐입니다.

둘 다 사용해도 될 것 같은데...

if    command -v fgrep 
then  _grepf(){ fgrep "$@"; }
else  _grepf(){ grep -F "$@"; }
fi    >/dev/null

...하지만 그런 일을 하는 것은 번거롭고 대개 시간 낭비입니다. 종속성 목록에서 가장 낮은 일관성 수준을 설정하고 표준이 나머지를 처리하도록 허용합니다.

관련 정보