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

ลบบรรทัดว่างออกจากไฟล์ใน PowerShell [3 วิธี]


เราสามารถดำเนินการกับไฟล์ได้หลายอย่างโดยใช้คอนโซล PowerShell ตัวอย่างเช่น การสร้างไฟล์ การลบไฟล์ การคัดลอกและการย้ายไฟล์ การแสดงเนื้อหาไฟล์ เป็นต้น

ขณะทำงานกับไฟล์ คุณอาจพบสถานการณ์ที่คุณต้องลบบรรทัดว่างในไฟล์ บทช่วยสอนนี้จะแสดงวิธีลบบรรทัดว่างออกจากไฟล์ใน PowerShell

ใช้ Get-Content cmdlet และตัวดำเนินการ ne

สมมติว่าคุณมีไฟล์ข้อความ sample.txt และคุณต้องการลบบรรทัดว่างออกจากไฟล์

หากต้องการดูเนื้อหาไฟล์ใน PowerShell คุณสามารถใช้ Get-Content cmdlet

รับไฟล์เนื้อหา:

Get-Content sample.txt

เอาท์พุท:

ไฟล์ข้อความ:

This is a first line.

This is a second line.

This is a third line.

อย่างที่คุณเห็น ไฟล์นี้มีบรรทัดว่างหลายบรรทัด หากต้องการกรองและลบบรรทัดว่าง ให้ดำเนินการคำสั่งด้านล่าง

ลบบรรทัดว่าง:

Get-Content sample.txt | ? {$_ -ne ""}

เอาท์พุท:

ไฟล์ข้อความ:

This is a first line.
This is a second line.
This is a third line.

คำสั่ง <รหัส>? {$_ -ne ""} รับทุกบรรทัดที่ไม่เท่ากับสตริงว่าง ส่งผลให้ไม่มีการพิมพ์บรรทัดว่าง

? เป็นนามแฝงสำหรับ Where-Object cmdlet ที่ช่วยในการเลือกวัตถุจากคอลเลกชัน

หากต้องการบันทึกเอาต์พุตลงในไฟล์ คุณสามารถไพพ์คำสั่งด้านบนไปที่ Out-File cmdlet

คำสั่งนี้จะลบบรรทัดว่างออกจากไฟล์ sample.txt และบันทึกลงในไฟล์ newsample.txt

ลบบรรทัดว่าง:

Get-Content sample.txt | ? {$_ -ne ""} | Out-File newsample.txt

ตรวจสอบเนื้อหาในไฟล์ใหม่

รับไฟล์เนื้อหา:

Get-Content newsample.txt

เอาท์พุท:

ไฟล์ข้อความ:

This is a first line.
This is a second line.
This is a third line.

การใช้ Get-Content cmdlet และตัวดำเนินการ ne และฟังก์ชัน trim()

ตัวอย่างข้างต้นไม่ได้ลบบรรทัดว่างที่มีเฉพาะช่องว่าง แท็บ หรือทั้งสองอย่าง คุณสามารถใช้เมธอด trim() เพื่อลบบรรทัดว่างที่มีช่องว่างและแท็บ

ลบบรรทัดว่าง:

Get-Content sample.txt | ? {$_.trim() -ne ""} | Out-File newsample.txt

หากคุณต้องการบันทึกเอาต์พุตในไฟล์ต้นฉบับเดียวกัน คุณต้องปิดคำสั่ง Get-Content ด้วยวงเล็บ () ดังที่แสดงด้านล่าง ช่วยให้มั่นใจว่าคำสั่งจะเสร็จสิ้นก่อนที่จะผ่านไปป์ไลน์

ลบบรรทัดว่าง:

(Get-Content sample.txt) | ? {$_.trim() -ne ""} | Out-File sample.txt

การใช้การแทนที่ Operator

หากต้องการลบบรรทัดว่างออกจากไฟล์:

  • ใช้ Get-Content cmdlet เพื่อรับเนื้อหาของไฟล์
  • ใช้ตัวดำเนินการแทนที่เพื่อแทนที่บรรทัดว่างที่ระบุโดยนิพจน์ทั่วไป (?m)^\s*rn ด้วยช่องว่าง

ลบบรรทัดว่าง:

((Get-Content sample.txt.txt -Raw) -replace "(?m)^\s*`r`n",'').trim() | Set-Content newsample.txt

เราใช้ตัวดำเนินการ replace เพื่อแทนที่บรรทัดว่างด้วยสตริงว่าง

ตัวดำเนินการแทนที่รับสองอาร์กิวเมนต์:

สตริงย่อยที่จะค้นหาในสตริงที่กำหนด : (?m)^\s*rn
replacement String for found String: สตริงว่าง

นั่นคือทั้งหมดที่คุณต้องรู้เกี่ยวกับวิธีลบบรรทัดว่างออกจากไฟล์ใน PowerShell หากคุณมีความสับสนใด ๆ โปรดแจ้งให้เราทราบในความคิดเห็น

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