Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] цикл для каждой строки из файла (http://forum.oszone.net/showthread.php?t=242968)

rudimko 19-09-2012 12:27 1991391

[решено] цикл для каждой строки из файла
 
Возможно задам совсем глупый вопрос, но т.к. я только недавно начал изучать PS, у меня ничего не получается с ForEach-Object и прошу сильно не ругаться... ;)

Имеем файл test.txt в котором записан через строки текст (который может дополняться), допустим:
1
2
3

Нужно к каждой из них добавить переменную (которая уже существует) и вывести в отдельный файл.

Т.е. содержание файлов в итоге должно быть таким:
Содержание 1 файла: 1 + Переменная
Содержание 2 файла: 2 + Переменная
Содержание 3 файла: 3 + Переменная

Заранее спасибо.

Kazun 19-09-2012 12:43 1991405

$var = "Привет"
gc test.txt | Foreach {"{0} : {1}" -f $_,$var} | out-file result.txt

rudimko 19-09-2012 12:58 1991414

Отлично, работает. А как сделать вывод каждой строки в отдельные файлы?

Kazun 19-09-2012 13:05 1991422

gc test.txt | Foreach {$i=0}{"{0} : {1}" -f $_,$var | out-file "num$(($i++))"}

rudimko 19-09-2012 14:07 1991458

Спасибо. То что нужно. Последний вопрос на тему этого скрипта:
В переменной сохранено несколько значений - "1, 2, 3, 4", но вывод производится в виде 1 2 3 4 (без разделителя). Как поставить запятую между значениями переменной или любой другой разделитель при ее выводе?

Kazun 19-09-2012 15:06 1991489

Установить значение переменной $OFS = ",",либо -join ","

alek2012 11-10-2012 17:18 2003546

у меня задача вывести только те строки, которые повторяются в файле test.txt

можно как то реализовать?

спасибо

Kazun 11-10-2012 17:30 2003559

Код:

gc test.txt| group | ? {$_.count -gt 1} | %{$_.Name}

alek2012 12-10-2012 10:15 2003976

Все получилось, вывел еще в отдельный файл.

Еще одна задача, можно как то строчки с файла1 сравнить с файлом2 и вывести из файла2 только те строчки, которых нет в файле1

спасибище.

Kazun 12-10-2012 10:34 2003981

Compare (gc 1.txt) (gc 2.txt) -Pass | Where {$_.SideIndicator -eq "=>"}

alek2012 12-10-2012 11:49 2004016

Вывел почему то с повторами

мне нужно вывести из 2.txt только те значения строк, которых нет в 1.txt и все

мне вывело те которые есть, еще и с повторами

Kazun 12-10-2012 12:13 2004039

Код:

PS > gc 1.txt
1
2
3
8
PS > gc 2.txt
1
2
3
4
5
PS > Compare (gc 1.txt) (gc 2.txt) -Pass | Where {$_.SideIndicator -eq "=>"}
4
5


alek2012 12-10-2012 15:13 2004170

Все получилось, видимо что то неправильно набрал. Спасибище огромное!

alek2012 24-10-2012 16:42 2011400

Еще один вопрос, как в файле удалит строки, которые повторяются?

Спасибо.

Kazun 24-10-2012 17:02 2011414

Get-Content file.txt | Select-Object -Unique | Out-File result.txt

alek2012 25-10-2012 09:46 2011760

Спасибо Kazun мего-огромное спасибище. Очень помог. PS только начал изучать. Я все что мне нужно объединил в одно)))


Время: 11:35.

Время: 11:35.
© OSzone.net 2001-