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

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

Ответить
Настройки темы
Любой язык - Выборка данных из txt

Новый участник


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

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


Имеется txt файл, в котором в каждой строке находится запись "Количество: 658" (количество в каждой строке может быть любое от 0 до 100000).
Нужно выбрать строки и сохранить их в отдельный txt файл где Количество больше 500.
Буду очень благодарен за помощь.

Отправлено: 02:35, 27-11-2013

 

Ветеран


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

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


Пример:
PS > gc 1.txt
Количество: 658
Привет
Количество: 1000
Количество: 500
Количество: 1
Количество: 10 0000

Вывод:
Код: Выделить весь код
PS > Get-Content 1.txt | Where {$_ -match "Количество:" -and [int]$_.split(":")[1].replace(" ","") -gt500}
Количество: 658
Количество:   1000
Количество:  10   0000
В таком случае приведите ваш файл с проблемной строкой.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:41, 27-11-2013 | #11



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

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


Новый участник


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

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


Kazun, Пример строк:
Текст Текст Текст значения: 543 43 значения_еще: 543 43 Количество: 54 403 Еще какой то текст

Отправлено: 12:58, 27-11-2013 | #12


Ветеран


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

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


Код: Выделить весь код
Get-Content file.txt | Where {$_ -match "Количество: (\d+ ?\d+)" | Where {[int]$matches[1].Replace(' ','') -gt 500}} | Out-File result.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:07, 27-11-2013 | #13


Новый участник


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

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


Kazun, работает, но если в "Количество: (находится значения от 1 до 9 )
То Ошибка: Не удается индексировать в массив NULL

Отправлено: 13:53, 27-11-2013 | #14


Ветеран


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

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


Не тот код вставляете, здесь нет массива и подобной ошибки не должно возникать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:02, 27-11-2013 | #15


Новый участник


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

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


Код что вы мне дали
Код: Выделить весь код
Get-Content J:\3.txt | Where {$_ -match "Количество: (\d+ ?\d+)" | Where {[int]$matches[1].Replace(' ','') -gt 500}} | Out-File J:\save.txt
только изменил пути к файлам

скриншот с ошибкой http://4.firepic.org/4/images/2013-1...pcfbzt5vc1.png

Отправлено: 14:08, 27-11-2013 | #16


Ветеран


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

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


Тогда приведите строку на которой возникает ошибка.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:25, 27-11-2013 | #17


Новый участник


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

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


в такой строке ошибка
Код: Выделить весь код
Текст Текст Текст значения: 543 43 значения_еще: 543 43 Количество: 1 Еще какой то текст
в такой строке ошибки нет
Код: Выделить весь код
Текст Текст Текст значения: 543 43 значения_еще: 543 43 Количество: 10 Еще какой то текст
если значения больше 10 то ошибки нет

Отправлено: 14:29, 27-11-2013 | #18


Ветеран


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

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


Код: Выделить весь код
Get-Content J:\3.txt | Where {$_ -match "Количество: (\d+ ?\d+)"} | Where {[int]$matches[1].Replace(' ','') -gt 500} | Out-File J:\save.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:41, 27-11-2013 | #19


Новый участник


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

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


теперь без ошибок, но если значения больше 500 то в save.txt не сохраняет.
Предыдущий скрипт сохранял

Отправлено: 14:52, 27-11-2013 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Выборка данных из таблицы mysql vinbongun Вебмастеру 7 14-08-2013 06:23
MySQL - Выборка данных из таблицы mysql vinbongun Программирование и базы данных 0 11-08-2013 09:10
CMD/BAT - выборка данных из лога MrVest Скриптовые языки администрирования Windows 0 20-11-2012 16:50
[решено] Выборка данных из mysql и сортировка на php dima1981 Вебмастеру 4 11-11-2008 15:06
выборка данных из нескольких страниц vunder Программирование и базы данных 2 12-07-2004 20:33




 
Переход