Как читать из файла без новой строки в powershell - PullRequest
0 голосов
/ 06 декабря 2018

Мне нужно сопоставить шаблон, в котором нет символа новой строки.Целевой файл выглядит примерно так:

test

Я хочу заменить test содержимым, которое я получаю из файла.В блокноте ++ текст в одной строке, т. Е. В левой части блокнота ++ только «1».Я попробовал следующее:

PS D:\> $test = get-content tree.txt -raw
PS D:\> $test
test
PS D:\> $test > tree.txt
PS D:\> $test.trim() > tree.txt
PS D:\> $test.trimEnd() > tree.txt
PS D:\> $test.replace("`n","")
test
PS D:\> $test.replace("t","f")
fesf
PS D:\> $test.replace("\n","")
test
PS D:\> $test.replace("`n","") > tree.txt
Set-Content -NoNewline $test tree.txt

Но в конце все равно добавляется новая строка.Последний оператор не добавляет новую строку, но я хочу тот же вывод в переменной.Последняя команда выглядит примерно так:

$file -replace "[\s]+","" | ForEach-Object { $_ -replace $pattern.trimEnd(),"black-ink-mark"}

Шаблон $ не должен содержать символов новой строки.

Обновление : пример, который мне нужно заменить test в tree.txt файл с черными чернилами

PS D:\> get-content tree.txt
<element>test</element>
PS D:\> get-content tree2.txt
test
PS D:\> $pattern = get-content tree2.txt -raw
PS D:\> $file = get-content tree.txt -raw
PS D:\> $file -replace "[\s]+","" | ForEach-Object { $_ -replace {$pattern.replace('`n','')},"black-ink-mark"}
<element>test</element>
PS D:\>

1 Ответ

0 голосов
/ 06 декабря 2018

От @moshe perez.

Это работает:

$file.Replace($pattern,"black-ink-mark")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...