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+8
및 tr
명령을 실행하고 결과와 함께 최종 .txt
파일을 가져옵니다.
답변
Gnuplot이 구체적으로 어떻게 작동하는지 잘 모르겠지만 “여러 파일을 tail
하는 방법을 찾고 있다면 명령 줄에 이름을 전달하기 만하면됩니다.
유일한 문제는 tail
가 사용자가 쉽게 볼 수 있도록 헤더로 출력을 분리한다는 것입니다. -q
옵션 추가 :
-q, --quiet, --silent never output headers giving file names
지금까지 프로세스 대체와 다중 (r e) 정렬은 간단합니다.
tail -q -n+8 ../Q1a/sim_Q1.csv ../Q1b/sim_Q1.csv ../Q1c/sim_Q1.csv | tr ""," " " | sort -nk19
sed -n -e '8,470p'
를 사용할 수 있지만 솔루션을 변경하는 방법을 모릅니다. 문제는 세 파일 중 하나에서만이 범위 선택이 필요하다는 것입니다.tail -q -n+8 file1 <(head -n 470 file2) file3
일 것입니다.
head -n
를 만들어야합니다.tail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5
와 같이 작성할 수 있습니까?