O problema é que tail
está criando um único fluxo de dados para passar para head
, e é o que está sendo usado lá.
Em vez disso, você precisa processar cada arquivo - tail
to head
- e usar esse resultado no arquivo polls.csv.
Um one-liner ficaria assim:
shopt -s nullglob; for name in "/usr/local/tmp/csce215/election2008/"*/*.csv; do echo "==> $name" >> polls.csv; tail -n +3 "$name" | head -n -1 >>polls.csv; echo "" >> polls.csv; done;
O nullglob shopt-s impede ações indesejadas se não houver arquivos * .csv para encontrar.
Naturalmente, como isso usa o acréscimo ao arquivo para o redirecionamento, você precisará excluir o arquivo de enquetes após cada uso ou ele continuará crescendo. Ou modifique os comandos para atacá-lo no começo:
echo "" > polls.csv; shopt -s nullglob; for name in "/usr/local/tmp/csce215/election2008/"*/*.csv; do echo "==> $name" >> polls.csv; tail -n +3 "$name" | head -n -1 >>polls.csv; echo "" >> polls.csv; done;
Com as limitações do ecrã, não é apresentado como uma linha, mas sim como uma linha. Copiar / Colar deve mantê-lo como uma linha para você.