Прочитайте CSV для змінної та перевірте клітинки на цій лінії для іншої змінної


1

Я намагаюся створити пакетний файл для читання файлу CSV, щоб знайти ім'я користувача, яке буде змінною, після чого перевірте наступні 10 комірок цього рядка, якщо вони збігаються з іншою змінною, яка буде числом.

Приклад CSV:

bsmith, 22, 14, 15, 12, 18, 19
cwright, 10, 15, 11, 2
hwrong, 2, 6, 3
csmith, 10, 16, 19, 3, 5, 19, 18, 7, 2, 4

будь-яка допомога буде дуже вдячна! Дякую

Я маю це, щоб знайти ім'я користувача, але тепер я хочу перевірити номери, якщо вони збігаються з іншою змінною:

Змінні: "ім'я користувача" і "sitenum"

findstr /c:"%username%" "ACL.csv" >nul 2>&1
IF NOT ERRORLEVEL 1 (
echo AUTHORIZED
) else (
echo UNATHORIZED!!!!
)

Це пакетний файл Windows? Ваш тег має на увазі Linux-подібні системи, але findstr є командою Windows.
davidmneedham

Так, це вікна. мої вибачення, я новачок у суперкористувача Оновлені теги
JimBean2208

1
@ JimBean2208 Якщо ви використовуєте обмежені параметри регулярних виразів FINDSTR Ви повинні зробити це з одним FINDSTR. findstr /r /c:"%username%,.* %sitenum%," "ACL.csv"
Squashman

Відповіді:


1

Я хочу перевірити цифри, якщо вони збігаються з іншою змінною

Просто труба ( | ) вихід з першого findstr в іншу findstr наступним чином:

findstr /c:"%username%" "ACL.csv" | findstr /c:" %sitenum%," >nul 2>&1

Примітка:

  • провідний (простір) і кінцевий , (кома) важливі, оскільки це запобігає виникненню 1 відповідності 11 (наприклад)


Насправді це не вдасться при спробі знайти останнє число для кожного імені користувача, оскільки приклад даних не має кінця кома в кінці кожного рядка. Як і моя відповідь.
Squashman

Ви можете просто змінити другий FINDSTR до findstr /C:" %sitenum%," /RC:" %sitenum%$"
Squashman

0

Якщо ви використовуєте обмежені параметри регулярних виразів команди FINDSTR, ви повинні мати можливість зробити це за допомогою одного FINDSTR.

findstr /r /c:"%username%,.* %sitenum%," /c:"%username%,.* %sitenum%$" "ACL.csv"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.