PowerShell'de Çok Satırlı Dizeyi Diziye Nasıl Dönüştürürüz?


PowerShell'de çok satırlı dizeyi diziye dönüştürmek ister misiniz? Bu PowerShell eğitiminde, çeşitli yöntemler ve örnekler kullanarak çok satırlı bir dizenin PowerShell kullanarak diziye nasıl dönüştürüleceğini açıklayacağım.

PowerShell'de çok satırlı bir dizeyi diziye dönüştürmek için -split operatörünü yeni satır karakteri "n"yle veya Split() yöntemini kullanabilirsiniz. Örneğin, $array=$multiLineString -split "n", her yeni satırdaki dizeyi bir satır dizisine böler. Bu yöntem, çok satırlı bir dizeyi, her satırın dizideki bir öğe haline geldiği bir diziye dönüştürür.

PowerShell'de Çok Satırlı Dizeyi Diziye Dönüştürme

PowerShell'de çok satırlı dize ve dizi ile ne kastettiğimizi tanımlayalım.

Çok satırlı dize, birden çok satıra yayılan bir dizedir. İşte bir örnek:

$multiLineString = @"
Line one
Line two
Line three
"@

PowerShell'deki dizi, bir öğe koleksiyonunu tutan bir veri yapısıdır. Öğeler dizeler, tamsayılar ve hatta diğer diziler dahil olmak üzere herhangi bir türde olabilir. İşte bir dize dizisi örneği:

$stringArray = @("Line one", "Line two", "Line three")

Şimdi PowerShell’de çok satırlı bir stringi diziye nasıl dönüştüreceğimize bakalım.

Yöntem 1: -split Operatörünü Kullanma

PowerShell'de çok satırlı bir dizeyi diziye dönüştürmenin en basit yolu -split operatörünü kullanmaktır. Bu operatör, bir dizeyi sınırlayıcıya dayalı olarak alt dizelere böler. Varsayılan olarak, bir sınırlayıcı belirtmezseniz PowerShell dizeyi her yeni satır karakterinde böler.

İşte bir örnek:

$multiLineString = @"
Line one
Line two
Line three
"@

$array = $multiLineString -split "`r`n" # or -split "`n" on *nix systems

Bu örnekte, -split operatörü, dizeyi her satır başı ve yeni satır karakterinde ("rn") bölmek için kullanılır. Unix benzeri sistemlerde, yalnızca yeni satır karakterine (`”n”) göre bölmeniz gerekir.

Çıktı için aşağıdaki ekran görüntüsüne göz atın:

Yöntem 2: .Split() Yöntemini Kullanma

Çok satırlı bir dizeyi diziye dönüştürmenin başka bir yolu da doğrudan dize nesnesi üzerinde .Split() yöntemini kullanmaktır. Bu yöntem sınırlayıcıyı bağımsız değişken olarak belirtmenize olanak tanır.

Bunu nasıl kullanabileceğiniz aşağıda açıklanmıştır:

$multiLineString = @"
Line one
Line two
Line three
"@

$array = $multiLineString.Split("`r`n", [StringSplitOptions]::RemoveEmptyEntries)

Bu örnekte, $multiLineString değişkeninde .Split() yöntemi çağrılır ve ona her satır başı ve yeni satır karakterinde dizeyi bölmesi söylenir. [StringSplitOptions]::RemoveEmptyEntries bağımsız değişkeni, ardışık yeni satır karakterleri varsa oluşturulabilecek boş girişleri kaldırmak için kullanılır.

Yöntem 3: ConvertFrom-String Cmdlet'ini Kullanma

PowerShell ayrıca yapılandırılmış dize verilerini nesnelere dönüştürmek için kullanılabilecek ConvertFrom-String adlı bir cmdlet'i de sağlar. Bu cmdlet biraz daha gelişmiştir ve karmaşık dize ayrıştırma için kullanılabilir.

İşte basit bir kullanım örneği:

$multiLineString = @"
Line one
Line two
Line three
"@

$template = @{
    Delimiter = "`r`n"
}
$array = ($multiLineString | ConvertFrom-String -TemplateContent $template).P1

Bu örnekte, sınırlayıcıyı belirten bir şablonla birlikte ConvertFrom-String kullanılmıştır. Daha sonra elde edilen diziyi elde etmek için .P1 özelliğine erişilir.

Yöntem 4: Özel İşlev Kullanma

Kendinizi sık sık çok satırlı dizeleri dizilere dönüştürürken bulursanız, görevi basitleştirmek için özel bir işlev oluşturmak isteyebilirsiniz.

Aşağıda özel bir işlev örneği verilmiştir:

function Convert-MultilineStringToArray {
    param (
        [Parameter(Mandatory=$true)]
        [string]$String
    )

    return $String -split "`r`n"
}

$multiLineString = @"
Line one
Line two
Line three
"@

$array = Convert-MultilineStringToArray -String $multiLineString

Bu işlev, Convert-MultilineStringToArray, giriş olarak çok satırlı bir dize alır ve dizeyi her yeni satır karakterine bölerek bir dizi döndürür.

Çözüm

PowerShell'de çok satırlı bir dizeyi diziye dönüştürmek, farklı yöntemler kullanılarak gerçekleştirilebilecek yaygın bir görevdir. İster -split operatörünü, .Split() yöntemini, ConvertFrom-String cmdlet'ini kullanmayı, ister özel bir işlev oluşturmayı tercih edin, PowerShell bununla başa çıkma esnekliği sağlar.

Bu PowerShell eğitiminde, çok satırlı bir dizenin PowerShell'de diziye nasıl dönüştürüleceği hakkında her şeyi açıkladım.

İlgili makaleler