รับบรรทัดแรกและบรรทัดสุดท้ายของสตริงหลายบรรทัดใน 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: เหมาะสำหรับการดำเนินการแบบไฟล์ - การใช้นิพจน์ทั่วไป: มีประสิทธิภาพสำหรับการจัดการสตริงที่ซับซ้อน


