Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Разбор ячеек при поиске в csv

Ответить
Настройки темы
PowerShell - Разбор ячеек при поиске в csv

Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: c4uran
Дата: 18-01-2019
Описание: заменил таблицу
$csv:
a;b
1;First part, Part
2;Second part, Third part


Есть такой csv файл, пытаюсь сделать поиск по полям так, чтобы каждая ячейка разбиралась в цикле foreach

т.е если делаю поиск так:
$csv | where { $_.b -match "part" }

то выводятся все линии где есть part, а нужно чтобы при поиске в b например, выводилась только первая линия когда я ищу part
в идеале думается нужно сделать цикл с разделителями запятые для каждой ячейки, только как это сделать не знаю хелп

Отправлено: 11:05, 15-01-2019

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата c4uran:
при поиске в row3 например, выводилась только первая линия »
row = линия (строка в таблице). Почему при поиске в третьей строке должна выводиться первая?

приведите содержимое csv-файла и полный код скрипта

Отправлено: 12:50, 15-01-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png 123.png
(4.6 Kb, 6 просмотров)

Заработался совсем row перепутал с column

Отправлено: 13:33, 15-01-2019 | #3


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Скрипта еще нет, смысл в том что нужно искать в csv файле: при поиске по 3-тей колонке например, выводилась только первая линия когда я ищу part, а не первая и третья т.к и там и там есть слово part

Отправлено: 13:38, 15-01-2019 | #4


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
.... | Select-Object -First 1

Отправлено: 14:13, 15-01-2019 | #5


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


выводилась только первая линия когда я ищу part

Отправлено: 14:15, 15-01-2019 | #6


Аватара для Charg

Ветеран


Сообщения: 2798
Благодарности: 469

Профиль | Отправить PM | Цитировать


c4uran, чтобы ответить на твой вопрос нужно понимать объект какого типа у тебя в переменной $csv.
Загрузи в неё свой файл, затем посмотри вывод $csv | gm, если тип объекта TypeName: System.Management.Automation.PSCustomObject - тогда будет работать вот так:

$csv.Item(3) | where какой-то фильтр

Но вообще я так и не понял - ты хочешь искать среди всех значений в пределах одной строки и в качестве результата иметь содержимое "ячейки" или ты хочешь искать по всему файлу и выводить строку как результат поиска.

Ну и еще не забывай что в твоем примере всего 3 строки, а нумерация идет с 0. Т.е. $csv.Item(3) это четвертая строка.

Отправлено: 16:10, 15-01-2019 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Для начала, по-хорошему — дабы не гадать, нужны а) исходные данные в виде файла, б) код, который с ним работает.

Отправлено: 17:15, 15-01-2019 | #8


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png 123.png
(4.6 Kb, 10 просмотров)

Таблица в виде картинки, приложить csv файл нельзя
Скриптов пока нет, только идея

Суть в том что в ячейках таблицы данные указываются через запятую и содержат схожие части значений например слово Part
и если я начинаю искать значения в ячейках ( $csv | where $_.c -match "part" ) то получаю все строки где есть слово Part

а нужно получать только строку где указано "Second part, Part" т.к там слово Part стоит отдельно (через запятую)

мне кажется что перед поиском (where) нужно сделать цикл перебора значений в каждой ячейке с разделителем - запятая, т.е как-то так $csv | % {$csv.c | % { if ($_.split('"') -eq "part") { ... } }
но чет я не понимаю как это сделать или хеш таблицу составлять на лету для каждой строки

Отправлено: 09:56, 17-01-2019 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата c4uran:
приложить csv файл нельзя »
Можно приложить архив. А ещё архив можно выложить на какой-нибудь DropMeFiles.com, а ссылку — сюда.

С картинкой работать никто не будет.

Отправлено: 15:18, 17-01-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Разбор ячеек при поиске в csv

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2013 - Excel - При копировании меняется цвет заливки ячеек it3 Microsoft Office (Word, Excel, Outlook и т.д.) 7 17-05-2017 12:54
CMD/BAT - [решено] Периеминование файла doc.csv в Документ_дата_время.csv kagorec Скриптовые языки администрирования Windows 2 29-03-2014 18:40
Ошибка при поиске обновлений leonty WSUS 12 15-03-2012 13:53
Анимация собачки при поиске. illznn Автоматическая установка Windows 2000/XP/2003 1 22-10-2009 15:34
Бага при поиске Megabizon О сайте и форуме 3 03-02-2004 17:14




 
Переход