Мне нужно сопоставить шаблон, в котором нет символа новой строки.Целевой файл выглядит примерно так:
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:\>