Muitas vezes, vi respostas mencionando que egrep
é grep -E
ou fgrep
é grep -F
e usando egrep
ou fgrep
em suas respostas, mesmo que sejam tecnicamente obsoletas.
Então, eu queria saber se havia exemplos específicos de sistemas modernos (ish) semelhantes a unix que não fornecem esse link entre os conjuntos de comandos. Por exemplo, o manual GNU grep contém
Além disso, dois programas variantes egrep e fgrep estão disponíveis. egrep é o mesmo que 'grep -E'. fgrep é o mesmo que 'grep -F'. A invocação direta como egrep ou fgrep está obsoleta, mas é fornecida para permitir que aplicativos históricos que dependem deles sejam executados sem modificações.
enquanto o FreeBSD tem
Além disso, dois programas variantes egrep e fgrep estão disponíveis. egrep é o mesmo que grep -E. fgrep é o mesmo que grep -F.
Seria bom saber que um script não funcionaria necessariamente em todos os lugares, mesmo com o fato de que egrep
ou fgrep
poderia ser removido amanhã.
Não acho que existam sistemas que explicitamente não os tenham (mas não tenho nenhum sistema UNIX comercial moderno para examinar agora, apenas sistemas de código aberto), mas há alguns onde eles estão apenas stubs que chamam regular
grep
com a opção apropriada.Por exemplo, no Gentoo Linux,
/bin/egrep
este shell script é:E
/bin/fgrep
é essencialmente o mesmo. Também vi alguns sistemas em queegrep
efgrep
são apenas links simbólicos ou hard links paragrep
, mas nunca vi um em que nenhum deles existisse.Observe, no entanto, que, embora
egrep
efgrep
sejam obsoletos, é quase certo que não desaparecerão tão cedo. Uma rápida varredura de scripts em/usr
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 concluir ironicamente 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, pois será executado em sistemas mais antigos que o código que usa as opções não.