ค้นหาเว็บไซต์

รับบรรทัดแรกและบรรทัดสุดท้ายของสตริงหลายบรรทัดใน PowerShell


สมาชิกในทีมคนหนึ่งของฉันพยายามเขียนสคริปต์เพื่อค้นหาบรรทัดแรกและบรรทัดสุดท้ายของสตริงหลายบรรทัด ฉันลองวิธีการต่างๆ ในบทช่วยสอนนี้ ฉันได้อธิบายวิธีรับบรรทัดแรกและบรรทัดสุดท้ายของสตริงหลายบรรทัดใน PowerShell

หากต้องการรับบรรทัดแรกและบรรทัดสุดท้ายของสตริงหลายบรรทัดใน PowerShell คุณสามารถใช้ตัวดำเนินการ -split เพื่อแปลงสตริงเป็นอาร์เรย์ของบรรทัด จากนั้นจึงเข้าถึงองค์ประกอบแรกและองค์ประกอบสุดท้าย ตัวอย่างเช่น:

$multilineString = @"
First line
Second line
Last line
"@
$lines = $multilineString -split "`n"
$firstLine = $lines[0]
$lastLine = $lines[-1]

ให้เราลองวิธีการต่างๆ

วิธีที่ 1: การใช้รับเนื้อหา

Get-Content cmdlet ใน PowerShell ใช้เพื่ออ่านเนื้อหาของไฟล์ นอกจากนี้เรายังสามารถใช้ cmdlet เดียวกันเพื่อประมวลผลสตริงหลายบรรทัดโดยใช้พารามิเตอร์ -Raw

ต่อไปนี้คือตัวอย่างวิธีใช้ Get-Content cmdlet ใน PowerShell เพื่อรับชื่อและนามสกุลของสตริงหลายบรรทัด

# Define a multiline string
$multilineString = @"
First line
Second line
Third line
Fourth line
Last line
"@

# Convert the multiline string into an array of lines
$lines = $multilineString -split "`n"

# Get the first and last lines
$firstLine = $lines[0]
$lastLine = $lines[-1]

# Output the results
Write-Output "First Line: $firstLine"
Write-Output "Last Line: $lastLine"

ในตัวอย่างนี้ ตัวดำเนินการ -split ใช้เพื่อแยกสตริงหลายบรรทัดออกเป็นอาร์เรย์ของบรรทัด บรรทัดแรกเข้าถึงได้โดยใช้ $lines[0] และบรรทัดสุดท้ายเข้าถึงได้โดยใช้ $lines[-1]

ฉันได้ดำเนินการสคริปต์ PowerShell ข้างต้นแล้ว และคุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง:

อ่านแปลงสตริงหลายบรรทัดเป็นบรรทัดเดียวใน PowerShell

วิธีที่ 2: การใช้ Select-Object

Select-Object cmdlet ใน PowerShell สามารถใช้เพื่อเลือกคุณสมบัติเฉพาะของวัตถุ รวมถึงบรรทัดของข้อความ นี่เป็นอีกวิธีหนึ่งในการรับบรรทัดแรกและสุดท้ายของสตริงหลายบรรทัดของ PowerShell โดยใช้ Select-Object

นี่คือสคริปต์ฉบับเต็ม:

# Define a multiline string
$multilineString = @"
First line
Second line
Third line
Fourth line
Last line
"@

# Convert the multiline string into an array of lines
$lines = $multilineString -split "`n"

# Use Select-Object to get the first and last lines
$firstLine = $lines | Select-Object -First 1
$lastLine = $lines | Select-Object -Last 1

# Output the results
Write-Output "First Line: $firstLine"
Write-Output "Last Line: $lastLine"

ในที่นี้ Select-Object ใช้กับพารามิเตอร์ -First และ -Last เพื่อดึงข้อมูลบรรทัดแรกและบรรทัดสุดท้ายตามลำดับ

คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง:

วิธีที่ 3: การใช้ Get-Content ด้วย -TotalCount และ -Tail

นี่คือวิธีที่สาม

หากคุณกำลังทำงานกับไฟล์ Get-Content สามารถใช้กับพารามิเตอร์ -TotalCount เพื่อรับสองสามบรรทัดแรกและพารามิเตอร์ -Tail เพื่อรับสองสามบรรทัดสุดท้าย

นี่คือตัวอย่าง

# Save the multiline string to a temporary file
$multilineString = @"
First line
Second line
Third line
Fourth line
Last line
"@
$tempFile = "tempfile.txt"
$multilineString | Out-File -FilePath $tempFile

# Get the first and last lines from the file
$firstLine = Get-Content -Path $tempFile -TotalCount 1
$lastLine = Get-Content -Path $tempFile -Tail 1

# Output the results
Write-Output "First Line: $firstLine"
Write-Output "Last Line: $lastLine"

# Clean up the temporary file
Remove-Item -Path $tempFile

ในตัวอย่างนี้ สตริงหลายบรรทัดจะถูกบันทึกลงในไฟล์ชั่วคราวก่อน Get-Content ใช้กับ -TotalCount เพื่อรับบรรทัดแรกและ -Tail เพื่อรับบรรทัดสุดท้าย ในที่สุด ไฟล์ชั่วคราวจะถูกลบออก

อ่านสตริงตัวกรองใน PowerShell

วิธีที่ 4: การใช้นิพจน์ทั่วไป

คุณยังสามารถใช้นิพจน์ทั่วไปเพื่อแยกบรรทัดแรกและบรรทัดสุดท้ายจากสตริงหลายบรรทัดใน PowerShell

นี่คือตัวอย่าง:

# Define a multiline string
$multilineString = @"
First line
Second line
Third line
Fourth line
Last line
"@

# Use a regex pattern to match the first and last lines
if ($multilineString -match "^(.*?)[\r\n]+.*[\r\n]+(.*?)$") {
    $firstLine = $matches[1]
    $lastLine = $matches[2]
}
# Output the results
Write-Output "First Line: $firstLine"
Write-Output "Last Line: $lastLine"

ในตัวอย่างนี้ นิพจน์ทั่วไปจะจับคู่บรรทัดแรกและบรรทัดสุดท้ายของสตริงหลายบรรทัด ตัวดำเนินการ -match จับบรรทัดเหล่านี้ลงในอาร์เรย์ $matches

นี่คือผลลัพธ์ของสคริปต์ PowerShell ด้านบนในภาพหน้าจอด้านล่าง:

บทสรุป

ในบทช่วยสอนนี้ ฉันได้อธิบายวิธีรับบรรทัดแรกและบรรทัดสุดท้ายของสตริงหลายบรรทัดใน PowerShell โดยใช้วิธีต่างๆ

  • การใช้ Get-Content และ -split: สำหรับสตริงในหน่วยความจำ
  • การใช้ Select-Object: มีประโยชน์สำหรับการเลือกบรรทัดที่ต้องการจากอาร์เรย์
  • การใช้ Get-Content กับ -TotalCount และ -Tail: เหมาะสำหรับการดำเนินการแบบไฟล์
  • การใช้นิพจน์ทั่วไป: มีประสิทธิภาพสำหรับการจัดการสตริงที่ซับซ้อน

บทความที่เกี่ยวข้อง