bash 삽입 기능에 해당하는 짧은 "csvgrep"

bash 삽입 기능에 해당하는 짧은 "csvgrep"

질문: 일부 줄을 grep하는 좋은 "직접" 대체데이터 세트특정 열에 특정 키워드가 포함된 파일입니다.

요구 사항: 더 복잡한 csv 파일 지원 - 큰따옴표, 줄 바꿈 포함.

사용 사례: "csvkit"은 훌륭하지만 몇 줄만 파악하는 것은 아마도 너무 많은 일입니다.

아주 좋은 것들이 있어요csvkit작업데이터 세트다음을 포함한 파일csvgrep. 그러나 때때로 우리가 스크립트를 작성하고 있는 환경에 csvkit이 설치되어 있지 않고 몇 줄만 greping하기 때문에 모든 것을 설치/컴파일하는 것이 중복될 수 있습니다.데이터 세트문서.

답변1

  • -1: python2가 필요합니다.
  • +1: python2가 csvkit보다 더 일반적입니다.

배쉬 삽입 기능:

function csvgrep(){
grep_criteria="$1"
matchcolumn="$2"
python2 -c "import csv, sys
rows = list(csv.reader(sys.stdin))
writer = csv.writer(sys.stdout)
writer.writerow(rows[0])
for row in rows[1:]:
  if row[${matchcolumn}] == '${grep_criteria}':
    writer.writerow(row)"
}

용법:

csvgrep 'valueInLastColumn' '-1' < in.csv > out.csv

관련 정보