Disponibilidade de comandos egrep e fgrep obsoletos

1

Muitas vezes, vi respostas mencionando que egrep é grep -E ou fgrep é grep -F e usa egrep ou fgrep em suas respostas, embora sejam tecnicamente obsoletas.

Então eu queria saber se havia exemplos particulares de sistemas modernos (ish) semelhantes a unix que não fornecem este link entre os conjuntos de comandos. Por exemplo, o manual do GNU grep contém

In addition, two variant programs egrep and fgrep are available. egrep is the same as ‘grep -E’. fgrep is the same as ‘grep -F’. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run unmodified.

enquanto o FreeBSD tem

In addition, two variant programs egrep and fgrep are available. egrep is the same as grep -E. fgrep is the same as grep -F.

Seria bom saber que um script não necessariamente funcionaria em todos os lugares, mesmo com o fato de que egrep ou fgrep poderia ser removido amanhã.

    
por Guy 18.01.2018 / 14:35

1 resposta

2

Eu não acho que existam sistemas que explicitamente não os possuam (mas eu não tenho sistemas UNIX comerciais modernos para olhar agora, apenas sistemas de código aberto) , mas existem alguns onde eles são apenas stubs que chamam grep com a opção apropriada.

Por exemplo, no Gentoo Linux, /bin/egrep é este script de shell:

#!/bin/sh
exec grep -E "$@"

E /bin/fgrep é essencialmente o mesmo. Eu também vi alguns sistemas onde egrep e fgrep são apenas links simbólicos ou hard links para grep , mas eu nunca vi um em que nenhum deles tenha existido.

No entanto, observe que, embora egrep e fgrep estejam obsoletos, eles quase certamente não desaparecerão em breve. Uma varredura rápida de scripts em /usr no meu laptop (que está executando o Gentoo Linux) encontra algumas dezenas de pacotes de software que possuem scripts que usam um ou outro, incluindo coisas onipresentes como Python e GCC.

Dado tudo isso, pode-se ironicamente concluir que o código que usa os comandos obsoletos em vez das opções é realmente mais portátil do que o código que usa as opções, já que será executado em sistemas mais antigos usar as opções não vai.

    
por 18.01.2018 / 21:25