Estou escrevendo um conjunto de ferramentas "Unix Way", onde você tem um conjunto de pequenas ferramentas que podem ser canalizadas (e outras ferramentas).
A pergunta (mais detalhes sobre o motivo pelo qual eu me preocupo) é: Existe um formato de saída recomendado para o formato tabular para saída de linha de comando, que é conveniente para usar em colunas e outras ferramentas padrão do Unix?
Alguns antecedentes:
Estou escrevendo um conjunto de ferramentas para gerenciar e pesquisar conjuntos de cards do Magic the Gathering na linha de comando. Estou tentando fazer com que as ferramentas fiquem com foco em laser, cada uma fazendo exatamente um trabalho.
Eu tenho uma ferramenta chamada mtg-identify-set, que usa como parâmetro o nome do conjunto e, em seguida, faz uma pesquisa difusa nos nomes dos conjuntos, descartando uma lista de correspondências do melhor para o pior:
A saída para procurar por "Theros" é a seguinte:
Portanto, ele exibe o código do conjunto, o nome do conjunto e uma correspondência de porcentagem, ignorando letras maiúsculas.
Estou tentando escrever essas ferramentas como a maneira "gato-considerado perigoso" ( link ) , sem formatação de parâmetros, tentando manter as ferramentas em "um trabalho".
Mas isso me leva a um problema ... como a saída deve ser enviada para a linha de comando? As próprias ferramentas Unix são muito inconsistentes, e hoje em dia os programas de toolkit reais fazem coisas extremamente estranhas para produzir de uma maneira completamente inconsistente. A maioria tem suas próprias opções de formatação que são extremamente inconsistentes.
Eu tentei usar saída delimitada por tabulações, mas o comando "column" quer tratar todos os espaços em branco como iguais e colocar uma "tabulação" na coluna, já que o delimitador requer um pouco de magia negra. Eu poderia talvez apenas desistir e usar vírgulas, mas os cards de Planeswalker no MTG têm vírgulas em seus nomes, o que me daria problemas semelhantes. É quase garantido que o formato delimitado por pipe não colida com nada, mas isso torna o formato humano hostil se você NÃO usar a coluna para produzir material.
E eu realmente prefiro evitar fazer algum tipo de detecção de canal para fazer uma saída humana ou amigável para a máquina.
No pior caso, eu acho que posso produzir tudo como JSON ou algum outro formato de texto e apenas fornecer uma ferramenta de formatação que tira a saída das minhas outras ferramentas e formata-as como quiser, mas isso apenas adiciona complexidade. p>Talvez a resposta seja apenas "em suas ferramentas, seja consistente". E eu poderia apenas ter que seguir esse caminho. Mas eu estava esperando que houvesse realmente um guia de estilo para "formato de saída recomendado" para ferramentas de linha de comando. Eu tentei bisbilhotar, e o site Cat-v Considered Harmful tem muitas reclamações sobre quais ferramentas NÃO deveriam estar fazendo, mas não muito para o que deveriam.