Gnuplot에서 세 개의 CSV 파일을 연결하고 정렬하는 방법

Gnuplot에서 세 개의 CSV 파일을 연결하고 정렬하는 방법

3개의 CSV 파일에 포함된 데이터를 플롯하려면 Gnuplot을 사용해야 합니다.

일반적으로 다음 코드를 사용하여 2개의 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

CSV는 세 가지 다른 디렉터리에 있습니다. 데이터는 8행에서 시작하며 및 문자 "를 제거하고 ,19열을 기준으로 데이터를 정렬해야 합니다.

이 코드를 확장하여 3개의 다른 CSV를 붙여넣고 동일한 명령을 sort실행 하고 결과가 포함된 최종 파일을 얻는 방법을 모르겠습니다 .tail -n+8tr.txt

답변1

Gnuplot이 어떻게 작동하는지 정확히 모르겠지만 tail여러 파일을 처리하는 방법을 찾고 있다면 명령줄에 파일 이름을 전달하면 됩니다.

유일한 문제는 tail옵션을 추가하지 않으면 사람이 볼 수 있도록 출력을 헤더로 분리한다는 것입니다 -q.

   -q, --quiet, --silent
          never output headers giving file names

내가 아는 한 프로세스 대체를 건너뛰고 여러 개의 (재)주문을 수행할 수 있습니다.

tail -q -n+8 ../Q1a/sim_Q1.csv ../Q1b/sim_Q1.csv ../Q1c/sim_Q1.csv | tr '",' '  ' | sort -nk19

관련 정보