ลบบรรทัดว่างออกจากไฟล์ใน 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-Contentcmdlet เพื่อรับเนื้อหาของไฟล์ - ใช้ตัวดำเนินการแทนที่เพื่อแทนที่บรรทัดว่างที่ระบุโดยนิพจน์ทั่วไป
(?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 หากคุณมีความสับสนใด ๆ โปรดแจ้งให้เราทราบในความคิดเห็น