A substituição do comando aninhada não funcionará em csh
. Declare o padrão como uma variável e, em seguida, construa sua matriz usando a variável.
set pattern = 'date +%F_%H'
set status = ( 'cut -d, -f1 <*$pattern.csv | grep -v Status' )
Eu tenho um arquivo csv que gera automaticamente com o formato de nome de arquivo yy-mm-dd_h. O conteúdo do arquivo csv:
Status Filename
1 1A-W02_ws_r0_apr13_15_44.stdf
1 2A-W04_ws_r1_apr12_10_30.stdf
1 1A-W13_ws_r0_apr01_19_04.stdf
O arquivo csv será gerado se eu executar este script. Eu devo usar o shell script C para criar uma matriz para status e nome de arquivo. O código atual é:
set status = ('cat *'date +%F_%H'.csv | cut -d ',' -f1 | grep -v Status')
Estou usando date +%F_%H
para reduzir a possibilidade de erro se houver dois arquivos csv (apenas para o caso de o arquivo csv não ter sido excluído após a conclusão do trabalho de script).
Eu enfrentei o erro
too many words ''
ao executar o script, mas se eu não estiver usando a data, o script poderá ser executado normalmente. O que está errado com o código?
A substituição do comando aninhada não funcionará em csh
. Declare o padrão como uma variável e, em seguida, construa sua matriz usando a variável.
set pattern = 'date +%F_%H'
set status = ( 'cut -d, -f1 <*$pattern.csv | grep -v Status' )
Tags csh process-substitution