Tenho que plotar com o Gnuplot os dados contidos em três arquivos CSV.
Normalmente , Uso o seguinte código para plotar a partir de 2 arquivos CSV:
$datablock << EOD `cat ../Q1a/sim_Q1.csv <(tail -n+8 ../Q1b/sim_Q1.csv | tr ""," " " | sort -nk19 )| tail -n+8 | tr ""," " " | sort -nk19 > ../Q1a/Q6_ressult.txt` EOD set print "|bash -x" print $datablock set print
Os CSVs estão em três diretórios diferentes. Os dados começam na linha 8 e devo retirar os caracteres "
e ,
e classificar os dados pela coluna 19.
Não sei como estender este código para colar 3 CSV “s diferentes fazendo o mesmo, sort
, tail -n+8
e tr
comandos e obter um .txt
arquivo final com o resultado.
Resposta
Não tenho certeza de como o Gnuplot atua especificamente nisso, mas se você está procurando uma maneira de tail
vários arquivos, pode fazer isso simplesmente passando seus nomes na linha de comando.
A única pegadinha é que tail
separará as saídas com um cabeçalho para facilitar a visualização humana, a menos que você adicione a opção -q
:
-q, --quiet, --silent never output headers giving file names
Até onde posso ver, você pode pular as substituições de processo e múltiplas e) as classificações simplesmente fazem
tail -q -n+8 ../Q1a/sim_Q1.csv ../Q1b/sim_Q1.csv ../Q1c/sim_Q1.csv | tr ""," " " | sort -nk19
sed -n -e '8,470p'
, mas não sei como mudar sua solução. Acho que o problema é que preciso dessa seleção de intervalo em apenas um dos três arquivos.tail -q -n+8 file1 <(head -n 470 file2) file3
head -n
até alguma linha. Posso escrever algo comotail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5
?