ฉันใช้sed
คำสั่งต่อไปนี้เพื่อค้นหา / แทนที่ข้อความใน Linux สำเร็จแล้ว:
sed -i 's/old_link/new_link/g' *
อย่างไรก็ตามเมื่อฉันลองบน Mac OS X ของฉันฉันจะได้รับ:
"คำสั่ง c คาดว่า \ ตามด้วยข้อความ"
ฉันคิดว่า Mac ของฉันใช้เชลล์ BASH แบบปกติ ว่าไง?
แก้ไข:
ตามประสิทธิภาพสูง @ นี่เป็นเพราะ Mac sed
มีรสชาติที่แตกต่างกัน (BSD) ดังนั้นคำถามของฉันจะเป็นอย่างไรฉันจะทำซ้ำคำสั่งนี้ใน BSD ได้sed
อย่างไร
แก้ไข:
นี่คือตัวอย่างจริงที่เป็นสาเหตุของสิ่งนี้:
sed -i 's/hello/gbye/g' *
sed
เห็น "c" ในข้อมูลของคุณเป็นคำสั่ง คุณใช้ตัวแปรหรือไม่? โปรดโพสต์สิ่งที่แสดงคำสั่งจริงและข้อมูลที่คุณกำลังประมวลผลอย่างใกล้ชิดยิ่งขึ้นecho x | sed c
คุณจะได้รับการสาธิตที่เรียบง่ายของข้อผิดพลาดนี้โดยการทำ