ดังนั้นคำถามที่แท้จริงคือ - ไม่มีใครมีความคิดวิธีการลบM-BM-
ตัวละครพิเศษโดยไม่เสี่ยงต่อการสูญเสียตัวละครอื่น ๆ ?
ฉันมีข้อความ:
" . . ."
นั่นคือ
space dot space dot space dot
ฉันพยายามแทนที่สตริงนี้ทั้งหมดในไฟล์ข้อความเป็น
"..."
นั่นคือ
dot dot dot
ฉันพยายามจะทำกับ sed:
sed -r 's:\s\.\s\.\s\.:...:g' -i sed-dots
น่าเสียดายที่มันไม่เปลี่ยนไฟล์อินพุตแม้แต่นิดเดียว ไฟล์: https://www.dropbox.com/s/46zmiruy3ln85a1/sed-dots
เมื่อฉันพยายามที่จะแทนที่สตริงเดียวกันใน text editor (ฉันใช้ geany) จะพบและแทนที่อย่างถูกต้อง
เหตุผลเดียวที่ฉันคิดได้ก็คือพื้นที่บางส่วน (หรือทั้งหมด) ไม่ใช่ช่องว่าง แต่เป็นอักขระพิเศษ
ใครบ้างมีความคิดวิธีการค้นหาและแทนที่สตริงนั้นด้วย sed (หรือเครื่องมือบรรทัดคำสั่งอื่น ๆ )? โปรดทดสอบความคิดของคุณในไฟล์ของฉันเนื่องจากปัญหาไม่ชัดเจนเท่าที่ควร - นี่คือสาเหตุที่ฉันถามถึงมัน
หลังจากใช้cat -A
myfile ดูเหมือนว่ามีปัญหาว่าช่องว่างเหล่านั้นไม่ใช่ช่องว่าง แต่M-BM-
เป็นอักขระพิเศษ การใช้สัญลักษณ์ใด ๆ ที่.
แนะนำสำหรับการค้นหาไม่ใช่ความคิดที่ดีเนื่องจากมีความเสี่ยงที่อักขระอื่น ๆ จะถูกลบออก
echo
แทนการปล่อยไฟล์อย่างน้อยที่สุดเมื่อคุณ cat ไฟล์คุณรู้ว่าเชลล์ไม่ได้ตีความอะไรเลยและไม่มีเสียงก้อง