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 -f
Control-C를 사용하여 꼬리를 일시 중지하면 화살표를 사용하여 왼쪽 및 오른쪽으로 스크롤할 수 있습니다. 계속해서 추적하세요 F
.
답변2
칼럼은 당신이 원하는 것을 정확하게 수행합니다. 매개변수를 사용하여 탭을 구분 기호로 식별할 수 있습니다. 열로 파이프하는 옵션이 없는 이유는 무엇입니까?cat <file.csv> | column -s "\t"