ไม่มีใครรู้วิธีใช้ Sed เพื่อลบช่องว่างทั้งหมดในไฟล์ข้อความหรือไม่? ฉันยังพยายามใช้คำสั่ง "d" ลบเพื่อทำเช่นนั้น แต่ดูเหมือนจะไม่สามารถเข้าใจได้
ไม่มีใครรู้วิธีใช้ Sed เพื่อลบช่องว่างทั้งหมดในไฟล์ข้อความหรือไม่? ฉันยังพยายามใช้คำสั่ง "d" ลบเพื่อทำเช่นนั้น แต่ดูเหมือนจะไม่สามารถเข้าใจได้
คำตอบ:
หากต้องการ "ลบช่องว่างทั้งหมด" อาจหมายถึงหนึ่งในสิ่งต่าง ๆ :
0x20ลบเกิดขึ้นทั้งหมดของตัวละครของพื้นที่รหัส\t"\n" และอื่น ๆหากsedไม่ใช่ความต้องการด้วยเหตุผลที่ซ่อนอยู่ให้ใช้เครื่องมือที่เหมาะสมสำหรับงาน
คำสั่งtrมีการใช้งานหลักในการแปล (ดังนั้นชื่อ "tr") รายการของตัวละครไปยังรายการของตัวละครอื่น ๆ ในมุมกรณีมันสามารถแปลเป็นรายการของตัวละครที่ว่างเปล่า; ตัวเลือก-d( --delete) จะลบตัวอักษรที่ปรากฏในรายการ
รายการอักขระสามารถใช้ประโยชน์จากคลาสอักขระใน[:...:]ไวยากรณ์
tr -d ' ' < input.txt > no-spaces.txttr -d '[:blank:]' < input.txt > no-spaces.txttr -d '[:space:]' < input.txt > no-spaces.txtsedด้วย sed, [:...:]ไวยากรณ์สำหรับคลาสอักขระต้องรวมกับไวยากรณ์สำหรับชุดอักขระใน regexps [...]ทำให้เกิดความสับสนบ้าง[[:...:]]:
sed 's/ //g' input.txt > no-spaces.txtsed 's/[[:blank:]]//g' input.txt > no-spaces.txtsed 's/[[:space:]]//g' input.txt > no-spaces.txttr -d ' ' < input.txt > no-spaces.txtดังนั้นสิ่งที่ทำงานสำหรับฉันคือ
trตอนนี้ (คุณเห็นมันจากที่อื่นไหม)
คุณสามารถใช้สิ่งนี้เพื่อลบช่องว่างทั้งหมดในfile:
sed -i "s/ //g" file
man sed | sed "s/ //g"
/ด้วยอักขระอื่นเช่น:sed "ss ssg"