테이블 보기/형식에서 CSV 파일 변경/업데이트 모니터링/추적

테이블 보기/형식에서 CSV 파일 변경/업데이트 모니터링/추적

CSV 파일(로봇의 일부 로그 출력)에 대한 변경 사항을 모니터링/추적하고 싶습니다. <TAB>구분 기호와 헤더 정보가 포함된 첫 번째 줄이 포함된 대용량 파일입니다 .

지금까지 사용하고 있는 출력은 tail - f <file.csv>열 형식이 아니며 다음과 같습니다.

yAccelRaw       zAccelRaw       xGyroRaw    ... ... ...
3       256     1   ... ... ...
4       255     3   ... ... ... 
4       255     -6  ... ... ...
3       253     -1  ... ... ...
4       254     2   ... ... ...
5       255     0   ... ... ...
4       255     3   ... ... ...
5       254     3   ... ... ...
5       253     -1  ... ... ...
4       255     3   ... ... ...

30개 이상의 열이 포함된 CSV의 경우 어떤 값이 어떤 열에 속하는지 알기가 쉽지 않습니다. 하나라도 있는지 궁금해요일반적인출력물을 표 형식으로 인쇄하는 솔루션은 무엇입니까?

지금까지는 특정 열을 자르고 그 결과를 보는 데 익숙했지만 tail -f <file.csv> | cut -f5,6전체 개요를 선호합니다. 또한 column업데이트되지 않은 결과를 전달해 보았습니다 .

답변1

예를 들어, 다음과 같이 awk를 사용하여 첫 번째 행의 헤더를 캡처하고 10개 행마다 반복하고 열 크기를 줄여 최대 5자를 나타낼 수 있습니다.

tail -n +1 -f file.csv |
awk  'NR==1 { n=split($0,hdr) }
NR%10==1    { for(i=1;i<=n;i++)printf "%5.5s ",hdr[i];printf "\n" }
            { for(i=1;i<=n;i++)printf "%5.5s ",$i;printf "\n" }
'

이것은 다음과 같은 것을 줄 것입니다

yAcce zAcce xGyro ...
    3   256     1 ...
    4   255     3 ... 
    4   255    -6 ...
    3   253    -1 ...
    4   254     2 ...
    5   255     0 ...
    4   255     3 ...
    5   254     3 ...
    5   253    -1 ...
    4   255     3 ...
yAcce zAcce xGyro ...
    3   256     1 ...
...

너비가 터미널에 맞지 않을 정도로 너무 넓은 경우 결과를 파이프로 연결하여 less -S +F유사하게 작동하도록 할 수 있지만 tail -fControl-C를 사용하여 꼬리를 일시 중지하면 화살표를 사용하여 왼쪽 및 오른쪽으로 스크롤할 수 있습니다. 계속해서 추적하세요 F.

답변2

칼럼은 당신이 원하는 것을 정확하게 수행합니다. 매개변수를 사용하여 탭을 구분 기호로 식별할 수 있습니다. 열로 파이프하는 옵션이 없는 이유는 무엇입니까?cat <file.csv> | column -s "\t"

관련 정보