Я хочу разбить текстовый файл на несколько файлов, определив начало и конец каждого файла определенной строкой. Начало первого файла идентифицируется строкой "<ca>"
, конец - строкой "</ca>"
. Теперь я хочу вырезать и вставить содержимое между этими двумя строками в новый текстовый файл. До сих пор я написал этот код:
$content = Get-Content .\*.txt
{
if ($f -eq "</ca>") { $c > .\file.txt; }
if ($f -ne "<ca>" -and $f -ne "</ca>") { $c += $f }
}
Второе «если» должно удалить «идентификационные строки» из созданного файла.
Я столкнулся с двумя проблемами:
- Я могу выбрать только конец текста
- все абзацы из исходного файла больше не существуют, новый файл состоит всего из одной строки со всем, что в ней есть
Файл представляет собой VPN-конфигурацию и выглядит следующим образом:
client
dev tun
proto udp
remote 448
verify-x509-name
<ca>
Certificate:
Data:
Version: 3 (0x2)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=de
-----BEGIN CERTIFICATE-----
MIICzDCCAjWgAwIBAgIJANfh65DfDF45GFSD
-----END CERTIFICATE-----
</ca>
<cert>
Certificate:
Data:
Version: 3 (0x2)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=de
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
AoGBAN/jBWwRnjNtxJ+bj3U5oKhYjfu33N2dGlM9x5un9YLm9k6pBzhvG
</key>
Вывод выглядит так:
clientdev tunproto udpremote 448verify-x509-name<ca>Certificate:...
(и так далее)