반달가면 이글루에서 백업 - http://bahndal.egloos.com/646901 (2021.3.15)
csvtool은 리눅스에서 CSV(comma-separated values) 형식의 파일을 처리할 때 유용한 명령어 기반 프로그램이다. CSV 파일은 쉼표(,)를 구분자로 사용하는데, csvtool을 이용해서 특정 항목(column)을 출력하거나 구분자를 변경할 수 있다.
우선 터미널창에서 아래와 같이 작업하여 설치했다. 데비안/우분투 계열 배포판 기준이다.
# S/W 저장소 정보 갱신
sudo apt-get update
# csvtool 설치
sudo apt-get install csvtool
도움말을 보려면 --help 옵션을 지정하면 된다.
# 도움말 표시
csvtool --help
기본적인 사용법은 아래의 예시를 보면 감이 잡힐 것이다.
# input.csv 파일의 첫번째 항목을 출력(col 1)
csvtool col 1 input.csv
# input.csv 파일의 첫번째, 세번째, 다섯번째 항목을 출력(col 1,3,5)
csvtool col 1,3,5 input.csv
# input.csv 파일의 두번째부터 여섯번째 항목까지 출력(col 2-6)
csvtool col 2-6 input.csv
# input.csv 파일의 모든 항목(첫번째부터 마지막까지) 출력(col 1-)
csvtool col 1- input.csv
구분자는 쉼표(,)가 기본값이지만, 다른 구분자로 변경할 수도 있다. 입력 파일의 구분자는 -t 옵션으로 지정하고 출력의 구분자는 -u 옵션으로 지정한다. 예를 들어 input.csv 파일의 구분자를 쉼표에서 탭(tab)으로 변경해서 output.txt 파일로 저장하고 싶다면 아래와 같이 할 수 있다.
# input.csv 파일의 구분자를 쉼표에서 탭으로 변경하여 output.txt 파일로 저장
csvtool col 1- -t COMMA -u TAB input.csv > output.txt
만약 어떤 출력값을 파이프(|)로 넘겨서 csvtool의 입력으로 보내려면 csvtool에서 파일명 대신 "-" 기호를 사용한다. 아래의 예시를 보자.
# "a,b,c" 문자열에서 첫번째 항목을 출력
echo "a,b,c" | csvtool col 1 -
# input.csv 파일에서 문자열 "TEST"가 포함된 행만 골라낸 후에 두번째부터 여섯번째 항목을 출력
cat input.csv | grep "TEST" | csvtool col 2-6 -
# input.csv 파일에서 문자열 "TEST"가 포함된 행만 골라낸 후에 두번째부터 여섯번째 항목을 출력하되 구분자를 콜론(:)으로 설정
cat input.csv | grep "TEST" | csvtool col 2-6 -u ":" -
'리눅스' 카테고리의 다른 글
tmux - 리눅스 터미널창 분할 (0) | 2023.09.19 |
---|---|
xinput - 리눅스 데스크탑 환경에서 키보드/마우스 활성화/비활성화 (0) | 2023.09.19 |
리눅스에서 명령어로 모니터를 강제로 끄기 (0) | 2023.09.18 |
espeak - 텍스트를 음성으로 변환(text-to-speech, TTS) (1) | 2023.09.18 |
리눅스에서 xdotool을 이용한 마우스 작업 자동화 (0) | 2023.09.18 |