CSVGREP(1) csvkit CSVGREP(1)

csvgrep - فیلتر کردن و جستجوی داده‌های جدولی در فایل‌های CSV

فیلتر کردن داده‌های جدولی تنها به ردیف‌هایی که ستون‌های مشخصی از آن‌ها حاوی یک مقدار معین بوده یا با یک عبارت باقاعده مطابقت دارند:

usage: csvgrep [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
               [-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-S] [-H]
               [-K SKIP_LINES] [-v] [-l] [--zero] [-V] [-n] [-c COLUMNS]
               [-m PATTERN] [-r REGEX] [-f MATCHFILE] [-i] [-a]
               [FILE]
جستجوی فایل‌های CSV. مانند دستور "grep" در یونیکس، اما برای داده‌های جدولی.
positional arguments:
  FILE                  فایل CSV برای پردازش روی آن. در صورت حذف، ورودی را
                        به عنوان داده هدایت‌شده از طریق STDIN می‌پذیرد.
optional arguments:
  -h, --help            نمایش این پیام راهنما و خروج
  -n, --names           نمایش نام‌ها و نمایه‌های ستون‌ها از CSV ورودی
                        و خروج.
  -c COLUMNS, --columns COLUMNS
                        فهرستی از نمایه‌ها، نام‌ها یا محدوده‌های ستون جداشده با
                        کاما برای جستجو، مانند "1,id,3-5".
  -m PATTERN, --match PATTERN
                        رشته‌ای برای جستجو.
  -r REGEX, --regex REGEX
                        یک عبارت باقاعده برای تطبیق.
  -f MATCHFILE, --file MATCHFILE
                        مسیری به یک فایل. برای هر ردیف، اگر هر خط در فایل
                        (پیراسته از جداکننده‌های خط) تطابق دقیقی با مقدار سلول
                        باشد، ردیف مطابقت داده می‌شود.
  -i, --invert-match    انتخاب ردیف‌های غیرمنطبق، به جای ردیف‌های منطبق.
  -a, --any-match       انتخاب ردیف‌هایی که در آن‌ها هر ستونی مطابقت دارد، به جای
                        همه ستون‌ها.

همچنین ببینید: آرگومان‌های مشترک میان همه ابزارها.

نکته: با وجود اینکه '-m'، '-r' و '-f' به عنوان آرگومان‌های "اختیاری" فهرست شده‌اند، اما باید یکی از آن‌ها را مشخص کنید.

جستجو برای ردیف مربوط به Illinois:

csvgrep -c 1 -m ILLINOIS examples/realdata/FY09_EDU_Recipients_by_State.csv

جستجو برای ردیف‌های مربوط به ایالت‌هایی که نامشان با حرف "I" آغاز می‌شود:

csvgrep -c 1 -r "^I" examples/realdata/FY09_EDU_Recipients_by_State.csv

جستجو برای ردیف‌هایی که حاوی سلول خالی در ستون ایالت نیستند:

csvgrep -c 1 -r "^$" -i examples/realdata/FY09_EDU_Recipients_by_State.csv

انجام یک جستجوی غیرحساس به حروف بزرگ و کوچک:

csvgrep -c 1 -r "(?i)illinois" examples/realdata/FY09_EDU_Recipients_by_State.csv

حذف ردیف‌های توضیحات (comment):

printf "a,b\n1,2\n# a comment\n3,4" | csvgrep --invert-match -c1 -r '^#'

دریافت نمایه‌های ستون‌هایی که شامل متن منطبق هستند (\x1e نویسهٔ Record Separator (RS) است):

csvgrep -m 22 -a -c 1- examples/realdata/FY09_EDU_Recipients_by_State.csv | csvformat -M $'\x1e' | xargs -d $'\x1e' -n1 sh -c 'echo $0 | csvcut -n' | grep 22

نکته:

این مثال پایانی از نظر کارایی بهینه نیست.

Christopher Groskopf و مشارکت‌کنندگان

2016, Christopher Groskopf and James McKinney

August 16, 2024 2.2.0