Mam prosty plik tekstowy i potrzebuję skryptu programu Power Shell do zastąpienia niektórych części zawartości pliku.Zastąp zawartość pliku tekstowego wyrażeniem regularnym w powłoce administratora
Mój obecny scenariusz jest następujący:
$content = Get-Content -path "Input.json"
$content -Replace '"(\d+),(\d{1,})"', '$1.$2' | Out-File "output.json"
Czy to możliwe, aby zapisać go w jednej linii bez zmiennej treści, jak to?
Get-Content -path "Input.json" | ??? -Replace '"(\d+),(\d{1,})"', '$1.$2' | Out-File "output.json"
Nie wiem, w jaki sposób można korzystać z wyjścia pierwszego Get-Content commandlet w drugiej komendy bez zmiennej $ partnerskiej? Czy istnieje automatyczna zmienna powłoki programu Shell? Czy możliwe jest wykonanie więcej niż jednej wymiany w potoku?
Get-Content -path "Input.json" | ??? -Replace '"(\d+),(\d{1,})"', '$1.$2' | ??? -Replace 'second regex', 'second replacement' | Out-File "output.json"
Dziękujemy! To jest to czego chce! –
Mimo że działa tylko w trybie jednoliniowym '" \ n "," b "-replace ('\ n', 'a')' zwróci 'a', 'b'. '" \ n "," b "-replace ('\ nb', 'a')' Będzie nadal zwracać \ "n", "b" –
@TheRedPea: Możesz to zrobić ze wszystkimi liniami naraz, używając Zamiast tego użyj "Get-Content -Raw". Następnie otrzymasz jeden ciąg z powrotem. – Joey