PowerShell'de belirli bir dizeden önce görünen tüm karakterleri kaldırın


3

Aşağıdaki bilgileri içeren bir metin dosyasına sahibim:

24.;128.32.;128,6;0.128.68.;128,1.;0.76.;;;;;0,1.;0.4.;0,2.;0.5.;0,4.;;;0.76.;128,;;;;;;;;172.30.1.1,172.30.1.228,

Daha önce görünen tüm karakterleri kaldırmam gerekiyor 172.30.1.1. Benim dosya için bu gibi görünüyor:

172.16.1.1,172.16.1.210,

Poweshell'i bunu yapmak için kullanıyorum, ancak başarılı olamadım.

Yanıtlar:


3

Bunların çoğu, verilerinizin ne kadar tutarlı olacağına bağlı olacaktır. Çok sayıda yöntem olacak. Bölünmüş olarak yapabilirsiniz:

$test = '24.;128.32.;128,6;0.128.68.;128,1.;0.76.;;;;;0,1.;0.4.;0,2.;0.5.;0,4.;;;0.76.;128,;;;;;;;;172.30.1.1,172.30.1.228,'
$partIWant = $test.Split(';')[$($test.Split(';').Count-1)]
$partIWant

Bir regex de kullanabilirsiniz:

$partIWant = $test -replace '.+(\d+.\d+\.\d+\.\d+\.\d+,\d+\.\d+\.\d+\.\d+,)', '$1'
$partIWant

Kullanmak istediğiniz yöntemi seçmeniz ve çalışacağınız belirli verilere göre yapılandırmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.