Войти

Показать полную графическую версию : Обработка текста


hatun
22-08-2013, 02:43
Приветствую. Возникла необходимость обработать текстовый файл.(powershell)
На входе есть текстовый файл input.txt:

ivanov@test
petrov@test1
sidorov@proekt
system12345@okji
ubrat@fgt

необходимо получить файл вида:
ivanov@test ivanov@test
petrov@test1 petrov@test1
sidorov@proekt sidorov@proekt

исключив из файла строки содержащие system1234, ubrat

спасибо за любую помощь.

Foreigner
22-08-2013, 06:46
$a = (gc input.txt) -notmatch '(system1234|ubrat)'
$a | % { "$_ $_" } | sc input.txt

hatun
26-08-2013, 05:11
Спасибо.

А каким образом экранируются знаки вопроса?

$a = (gc input.txt) -notmatch '(system1234|??????)'
$a | % { "$_ $_" } | sc out.txt

Iska
26-08-2013, 05:34
А каким образом экранируются знаки вопроса? »
powershell regular expression - Поиск в Google (https://www.google.ru/search?q=powershell+regular+expression)

$sFile = "E:\Песочница\0317\input.txt"

$cContent = (Get-Content -Path $sFile) -notmatch "(system1234|\?{6})"

$cContent | ForEach-Object -Process {
"$_ $_"
} | Set-Content -Path $sFile
Откуда в E-mail'ах знаки вопроса?

Foreigner
26-08-2013, 18:09
hatun,
А что знаки вопроса уже допустимы в мэйл-адресе? Маска для файлов здесь не подойдет.

... -notmatch '(system12345|^[^@]{6}@.*$)
А вообще, проверка на валидность email с помощью рег. выражений, это не такая уж и простая тема (http://habrahabr.ru/post/175329/)

Iska
26-08-2013, 18:46
Маска для файлов здесь не подойдет. »
Foreigner, телепат, однако ;). Я не догадался.

hatun
27-08-2013, 06:44
Спасибо.




© OSzone.net 2001-2012