본문 바로가기
CSV files with Shell/CSV file info

.csv 파일에서 변수 정보 찾기

by 거인과난쟁이 2022. 8. 20.
  • cat
  • ls
  • head
  • wc
  • tr
  • |
sudo apt install sed # 데비안계열에서 sed 패키지 설치

cat은 매우 중독성이 강한 명령어중 하나이다. 파일 안을 들여다보고 싶을때 말이다. 한눈에 자료를 볼 수 있다면 매우 효과적이다. 그러나 복잡한 구조를 가진 데이터 파일이라면 무용지물이다. 한눈에 볼 수 없는 크기의 파일이라면 효과가 제한적이다. 게다가 만약 크기가 매우 큰 파일이라면, 시스템에 부담을 줄 수도 있다. cat을 쓰지 않고, 데이터 파일의 구조와 정보를 파악해야하는 경우가 매우 흔하다.

- 데이터 구조와 정보는 무엇일까? 이 질문에 정교하게 답을 하고 싶지 않다. 분석 과정에서 필요한 것이 정보 아닐까한다. 굳이 비교하자면, R의 str()  또는 한눈에 볼 수 있는 규모로 축소된 함축적인 내용이 정보일 것이다.

아래의 파일을 사용하여 연습하자:

https://modernity.tistory.com/entry/%EC%98%88%EC%A0%9C-csv-%ED%8C%8C%EC%9D%BC-%EB%88%88%EC%9C%BC%EB%A1%9C-%EB%B3%B4%EA%B8%B0-%EB%B6%88%ED%8E%B8%ED%95%9C-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%A0%95%EB%B3%B4-%ED%8C%8C%EC%9D%BC%EC%9D%98-%EA%B2%BD%EC%9A%B0

 

예제 .csv 파일: 눈으로 보기 불편한 텍스트 정보 파일의 경우

- 첨부된 파일에는 신문 기사 정보가 담겨있습니다. - 긴 파일 이름을 갖고 있습니다. 파일 이름에 정보를 넣다보면, 긴 이름이 되는 경우가 흔합니다. 2017년 6월 30일의 신문 기사들 몇개가 담겨

modernity.tistory.com

  • ls
# 파일 크기 보기 (KB)
ls -s news_IT_732_20170630_1.csv
  • head
head -1 news_IT_732_20170630_1.csv # 파일 첫 줄 보기
  • sed 패키지
# 데비안계열 리눅스에서 sed 패키지 설치하기
sudo apt install sed

# 데이터 파일에서 ,를 제외한 다른 사항을 공백으로 만들기
sed 's/[^,]/ /g' news_IT_732_20170630_1.csv
  • wc
# 데이터 파일에서 단어 세기
wc -w news_IT_732_20170630_1.csv

- 명령어 하나씩을 실행하면 원하는 데이터셋의 정보를 얻을 수 있을까? 그렇지 않다. 하지만, 범위를 좁혀 나가는 과정에서 정보를 찾을 수 있다.

# 데이터 파일의 column 정보 파악하기
# column은 변수 이름 목록인 경우가 많다
head -1 news_IT_732_20170630_1.csv |
sed 's/[^,]/ /g' |
wc -w

7이라는 숫자가 최종적으로 보일 것이다. 7은 , 의 개수이다. 그렇다면 , 로 분리되는 것은 8개일 것이다. 변수가 8개라고 이해할 수 있다.물론 'head -1 데이터파일' 명령어를 사용하면 첫줄의 정보를 볼 수 있는데, 그 첫줄에 등장하는 내용이 변수 목록이기도 하다.

만약, 변수 목록을 '옆으로'가 아닌 '밑으로' 보고 싶을때는 어떻할까?

# 변수 목록을 위에서 아래로 보기
head -1 news_IT_732_20170630_1.csv | tr "," "\n"

- 그럼, 구조화된 .csv 데이터 파일에서 크기와 column(변수)의 숫자를 알았다면, row(사례)의 개수는 어떻게 알 수 있을까?

'CSV files with Shell > CSV file info' 카테고리의 다른 글

.csv 파일에서 사례 정보 찾기  (0) 2022.08.20