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

วิธีลบบรรทัดว่างออกจากอาร์เรย์ใน PowerShell


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

หากต้องการลบบรรทัดว่างออกจากอาร์เรย์ใน PowerShell คุณสามารถใช้ Where-Object cmdlet พร้อมเงื่อนไขเพื่อกรองสตริงว่างหรือสตริงเฉพาะช่องว่างออก ตัวอย่างเช่น $array=$array | Where-Object { $_.Trim() -ne ” } จะลบบรรทัดว่างทั้งหมดออกจาก $array วิธีการนี้จะตรวจสอบแต่ละองค์ประกอบ ตัดช่องว่าง และตรวจสอบให้แน่ใจว่ามีเพียงสตริงที่ไม่ว่างเท่านั้นที่ยังคงอยู่ในอาร์เรย์

ลบบรรทัดว่างออกจากอาร์เรย์ใน PowerShell

อาร์เรย์เป็นโครงสร้างข้อมูลที่สามารถจัดเก็บคอลเลกชันของรายการได้ ใน PowerShell อาร์เรย์สามารถเก็บรายการประเภทใดก็ได้ รวมถึงสตริง จำนวนเต็ม และแม้แต่อาร์เรย์อื่นๆ อาร์เรย์มีประโยชน์อย่างเหลือเชื่อสำหรับการจัดเก็บและจัดการชุดข้อมูล

โดยทั่วไป “บรรทัดว่าง” ในอาร์เรย์จะแสดงด้วยสตริงว่าง ซึ่งสามารถแสดงเป็น "" หรือสตริงที่ประกอบด้วยอักขระช่องว่างเท่านั้น เช่น ช่องว่าง แท็บ หรือการขึ้นบรรทัดใหม่ การระบุสิ่งเหล่านี้อย่างถูกต้องเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าจะถูกลบออกจากอาร์เรย์ PowerShell

ตอนนี้ให้เราดู 3 วิธีในการลบบรรทัดว่างออกจากอาร์เรย์ใน PowerShell สคริปต์ทั้งหมดที่ฉันได้ดำเนินการโดยใช้ Visual Studio Code

วิธีที่ 1: การใช้ Where-Object Cmdlet

หนึ่งในวิธีที่ง่ายที่สุดในการลบบรรทัดว่างออกจากอาร์เรย์คือการใช้ cmdlet Where-Object ใน PowerShell cmdlet นี้ช่วยให้คุณสามารถกรองรายการตามบล็อกสคริปต์ที่ส่งคืน True หรือ False

นี่คือตัวอย่างที่สมบูรณ์ของการลบบรรทัดว่างออกจากอาร์เรย์ PowerShell

# Create an array with blank lines
$arrayWithBlanks = @("Line1", "", "Line2", " ", "Line3")

# Remove the blank lines
$cleanArray = $arrayWithBlanks | Where-Object { $_.Trim() -ne "" }

# Display the clean array
$cleanArray

ในตัวอย่างข้างต้น $_ แสดงถึงแต่ละรายการในอาร์เรย์ และใช้เมธอด .Trim() เพื่อลบอักขระช่องว่างที่นำหน้าหรือต่อท้าย การเปรียบเทียบ -ne "" จะตรวจสอบว่ารายการที่ตัดแต่งไม่ใช่สตริงว่างหรือไม่

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

วิธีที่ 2: การใช้ลูป foreach

อีกวิธีในการลบบรรทัดว่างใน PowerShell คือการใช้ลูป foreach เพื่อวนซ้ำแต่ละรายการในอาร์เรย์และรวบรวมรายการที่ไม่ว่างเปล่าลงในอาร์เรย์ใหม่

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

# Create an array with blank lines
$arrayWithBlanks = @("Line1", "", "Line2", " ", "Line3")

# Create an empty array to hold non-empty lines
$cleanArray = @()

# Loop through each item and add non-empty lines to the clean array
foreach ($line in $arrayWithBlanks) {
    if ($line.Trim() -ne "") {
        $cleanArray += $line
    }
}

# Display the clean array
$cleanArray

วิธีการนี้ช่วยให้คุณควบคุมกระบวนการได้มากขึ้น และช่วยให้ผู้เริ่มต้นเข้าใจได้ง่ายขึ้น เนื่องจากจะแจกแจงขั้นตอนการกรองอาร์เรย์ ดูภาพหน้าจอด้านล่างเพื่อดูผลลัพธ์:

วิธีที่ 3: การใช้นิพจน์ทั่วไปกับตัวดำเนินการ -match

PowerShell ยังรองรับนิพจน์ทั่วไป ซึ่งสามารถใช้เพื่อระบุและลบบรรทัดว่างโดยใช้ตัวดำเนินการ -match

ต่อไปนี้เป็นตัวอย่างที่สมบูรณ์ของวิธีใช้นิพจน์ทั่วไปเพื่อลบบรรทัดว่างออกจากอาร์เรย์ PowerShell

# Create an array with blank lines
$arrayWithBlanks = @("Line1", "", "Line2", " ", "Line3")

# Use regex to remove blank lines
$cleanArray = $arrayWithBlanks | Where-Object { $_ -match "\S" }

# Display the clean array
$cleanArray

ในตัวอย่างนี้ \S คือรูปแบบ regex ที่ตรงกับอักขระที่ไม่ใช่ช่องว่าง ตัวดำเนินการ -match ส่งคืน True สำหรับสตริงใดๆ ที่มีอักขระที่ไม่ใช่ช่องว่างอย่างน้อยหนึ่งตัว ซึ่งจะกรองบรรทัดว่างออกได้อย่างมีประสิทธิภาพ

นี่คือผลลัพธ์ในภาพหน้าจอด้านล่าง

บทสรุป

การลบบรรทัดว่างออกจากอาร์เรย์ใน PowerShell สามารถทำได้โดยใช้วิธีการต่างๆ เช่น cmdlet Where-Object ตรงไปตรงมาและกระชับ ส่วน foreach loop ให้ตรรกะและการควบคุมที่ชัดเจน และสม่ำเสมอ นิพจน์ให้ความสามารถในการจับคู่รูปแบบที่มีประสิทธิภาพ

ในบทช่วยสอนสคริปต์ PowerShell นี้ ฉันได้อธิบายวิธีลบบรรทัดว่างออกจากอาร์เรย์ใน PowerShell โดยใช้วิธีการและตัวอย่างต่างๆ

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