Estou aprendendo o uso do iscsiadm e de alguma forma notei um comportamento estranho do grep
.
A tentativa de executar o seguinte comando grep man iscsiadm | grep "aia"
resulta em troff:<standard input>:498: warning: cannot select font 'i'
.
Brinquei e descobri que o erro não ocorre quando faço grep for ia
or ai
, portanto, deve ser causado pelo padrão específico aia
.
Alguém pode oferecer uma explicação para esse comportamento?
EDITAR
@telcoM
Executei os dois comandos e ambos os arquivos contêm o mesmo erro; Na verdade, eles são iguais e sim, não vejo mais a mensagem de erro no console. Ambos os arquivos contêm a mesma mensagem de erro de antes.
@TheNotoriousGBR
Parece que você está certo. Executei o comando zgrep '\\fi' $(man -w iscsiadm)
e de fato falta o "I" maiúsculo:
\fiSNS\fR supported depends on build options, but is enabled by default.
Com base no resultado anterior, parece que o problema não está relacionado com grep
o que muitos de vocês sugeriram, mas na verdade está dentro da man
própria página do iscsiadm.
Devo deixar o título como está ou alterá-lo para um mais adequado?
Conforme observado em meus comentários ao eyoung100, não vejo esse problema com o pacote open-scsi 2.1.3-5 do Debian. Além disso, não há sequências de escape (ou solicitações) de seleção de fonte na linha 498 da minha cópia desse documento, então é quase certo que você esteja usando outra versão.
Minha cópia formata sem avisos:
(Eu costumava
-ww
ativar todos os avisos e-z
suprimir a saída formatada, já que tudo que me interessa são mensagens de diagnóstico.)Vejo, na linha 503 da minha cópia do arquivo doc/iscsiadm.8 , o seguinte:
Se eu excluir o I maiúsculo, recebo o seguinte.
Portanto, acho que algo semelhante está acontecendo com sua cópia.
Você pode tentar isto:
Isso deve informar se a página contém o erro que suspeito.
Alguém pode se perguntar por que o erro acontece. Isso se deve à sintaxe da sequência de escape de seleção de fonte
\f
. Veja como groff (7) resume isso.Os formulários entre colchetes são extensões GNU troff para a linguagem troff da AT&T . (Eles podem realmente se originar no SoftQuad troff , um descendente agora quase esquecido do Documenter's Workbench 2.0 troff da AT&T .)
Portanto, quando você
\f
segue algo diferente de um parêntese de abertura(
ou colchete de abertura[
, o próximo caractere é interpretado como o nome da fonte a ser selecionada. (Também poderia ser uma posição de montagem de fonte de um dígito , mas esse uso é extremamente raro nas páginas man (7) - felizmente.)No que diz respeito ao groff , os terminais suportam apenas quatro nomes de fontes:
R
,I
,B
eBI
; a página de manual suja (1) diz mais. A tentativa de selecionar qualquer outro nome de fonte falhará; como muitas outras coisas no Unix, os nomes das fontes *roff diferenciam maiúsculas de minúsculas. O groff 1.23.0 começou a emitir diagnósticos após falha na seleção da fonte em muito mais casos do que as versões anteriores do groff .