Escreve scripts como filtros de fluxo ou ferramentas somente de parâmetro? [fechadas]

0

Estou escrevendo um conjunto de scripts auxiliares de shell - um tipo de caixa de ferramentas para processamento de dados / text_files simples.

Nele, haverá algumas ferramentas simples como, por exemplo: dateToTimestamp ou showParagraphHeads .

Minha pergunta é:

Devo escrevê-los como filtros de fluxo ou ferramentas somente de parâmetros?

Deixe-me explicar isso em breve. Algumas ferramentas de shell padrão são obviamente filtros de fluxo como awk , sed ou digamos tr ou sort , mas outras funcionam apenas com parâmetros como date (isso é setter / getter, mas de qualquer forma).

showParagraphHeads :

Então, agora, se eu escrever um script que mostre a primeira linha de cada bloco de texto (linha curta no awk / sed embora) a resposta é óbvia porque eu preciso de um arquivo / fluxo de múltiplas linhas para fazer isso.

dateToTimestamp :

Mas se eu escrever algo que converta data de - digamos - YMDhms para timestamp, então pode ser feito como um filtro de fluxo, mas também como uma ferramenta somente de parâmetros (semelhante a date ) com uso como: dateToTimestamp DATE_IN_YMDhms

Agora, as duas formas têm seus prós e contras. Às vezes é mais fácil usar apenas pipe e usar meu filtro de fluxo. Outra vez, tenho dados mais complexos e preciso usar awk {system()} em alguma coluna, então é mais fácil usar a ferramenta baseada em parâmetros.

Eu sei que esta é uma questão geral, mas talvez você conheça algumas convenções ou diretrizes que talvez existam em algum lugar do mundo * nix.

Obrigado.

    
por sZpak 31.01.2018 / 20:25

1 resposta

1

Parte da filosofia Unix é "escrever programas para lidar com fluxos de texto, porque essa é uma interface universal "ou usar filtros de fluxo.

Dito isso, como você deseja (ou precisa) usar as ferramentas?

Deixe a resposta para essa pergunta responder à sua pergunta em uma base de ferramenta a ferramenta, já que outra parte da filosofia Unix é que um programa funcionalmente simples com uma implementação simples é melhor que um programa que se comporta consistentemente com outros programas.

Portanto, para extrair do seu exemplo, se um utilitário para converter formatos de data for realmente simples se aceitar parâmetros, só aceite parâmetros se isso atender às suas necessidades.

    
por 31.01.2018 / 20:44