Форум программистов, компьютерный форум, киберфорум
Наши страницы
PowerShell
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
PajGUN
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 10
1

Select-String и строки CRLF или 0D0A

16.07.2015, 17:41. Просмотров 723. Ответов 3
Метки нет (Все метки)

Всем привет!

Столкнулся с проблемой выборки строк из текстового файла.
Мне необходимо получить все номера строк в которых не содержатся слова: "CODE=0" и ".xml"

Выборку делаю следующей командой
Код
[String[]]$ErrNumLine = Select-String $WrkDir\log.txt -Pattern "CODE=0", ".xml" -notmatch | %{$_.linenumber+1}
Всё бы хорошо но есть проблема, мой текстовый документ (Log.txt) откуда производится выборка содержит "пустые строки", строки с переносами CRLF он же 0D0A(в HEX) и я пока не родил как можно добавить их в исключение (-notmatch) командлета Select-String.

Пример log.txt
Код
CODE=0 (10.07.2015 16:28:10)

Файл C:\Tests\UV0001.xml КА верен.

CODE=1006 (10.07.2015 16:28:48)

Файл C:\Tests\UV0002.xml КА не верен.

CODE=1006 (10.07.2015 16:30:32)

Файл C:\Tests\UV0003.xml КА не верен.

Пробовал следующие команды:
-Pattern "CODE=0", ".xml", "`r`n"
-Pattern "CODE=0", ".xml", "`n"
-Pattern "CODE=0", ".xml", ""
-Pattern "CODE=0", ".xml", " "
-Pattern "CODE=0", ".xml", "$null"

Хотелось бы сделать именно этим способом!

Добавлено через 14 минут
т.е. на выходе в переменной $ErrNumLine я бы хотел видеть следующую информацию:
Код
6
10
или 5 и 9 если в конвейере было бы %{$_.linenumber}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2015, 17:41
Ответы с готовыми решениями:

Select - option в две строки или столбика
Подскажите пожалуйста, как сделать select, option в две строки? Например, есть...

Часть строки или весь String сделать жирным шрифтом
Есть строка вида TextAkt := 'ЧП Иванов, именуемая в дальнейшем «Продавец» и...

Select в select или другой способ решения
Необходимо написать запрос. В таблице Info хранится Имя пользователя. Связана...

При выборе первого select-a на втором select-e должны отображаться те строки которое касается выбранному
У меня есть в таблице три поля(id,parent_id,name_gu),и есть еще два...

Замена crlf на lf при сохранении в txt из excel
Уважаемые форумчане, выручайте, горю. Написал простенький макрос, который...

3
ComSpec
3406 / 1951 / 627
Регистрация: 26.02.2014
Сообщений: 1,457
16.07.2015, 20:18 2
Лучший ответ Сообщение было отмечено PajGUN как решение

Решение

Код
[String[]]$ErrNumLine = Select-String -Pattern 'CODE=0', '\.xml', '^$' -Path "$WrkDir\log.txt" -NotMatch | % {$_.LineNumber+1}

$ErrNumLine
2
Garry Galler
1427 / 1151 / 424
Регистрация: 28.10.2013
Сообщений: 2,922
17.07.2015, 00:26 3
Без костыля в виде trim\IsNullOrWhiteSpace пока не нашел способа:
C#
1
2
3
4
5
[String[]]$ErrNumLine=Select-String -Pattern 'CODE=0|\.xml' -Path "log.txt" -NotMatch |?{$_.Line.Trim() -ne ""}|%{$_.LineNumber}
$ErrNumLine
 
[String[]]$ErrNumLine=Select-String -Pattern 'CODE=0|\.xml' -Path "log.txt" -NotMatch |?{![String]::IsNullOrWhiteSpace($_.Line)}|%{$_.LineNumber}
$ErrNumLine
0
PajGUN
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 10
17.07.2015, 09:46  [ТС] 4
ComSpec, в жизнь бы не догадался так регэкспы применить, век живи век учись. Работает как нужно! Ещё раз спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2015, 09:46

Select + JOIN или несколько select
Сейчас занимаюсь проектированием архитектуры своего (будущего) php-приложения и...

Как можно считывать из строки (std::string или char*) данные при помощи cin
Как можно считывать из строки (std::string или char*) данные при помощи cin...

SELECT запрос в базу Access (ошибка "Отсутствуют данные для строки или столбца")
Пишу так: OleDbConnection conn = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru