ข้อผิดพลาดในการทดแทนข้อความ sed


0

ฉันพยายามแทนที่ข้อความในไฟล์ด้วยค่าในตัวแปรโดยใช้sed:

file=1601001000100000003_0003_0_E_2011-11-21_16-52-16.db

sed -i "s/yyyy/$file" tempsbchg.sh

แต่sedกลับ:

sed: -e expression #1, char 58: unterminated `s' command

ฉันได้ลองด้วย:

sed -i "s/yyyy/${file}" tempsbchg.sh

คำตอบ:


1

คุณต้อง "ยุติ" การเปลี่ยนตัว - ใส่/ท้าย:

file=1601001000100000003_0003_0_E_2011-11-21_16-52-16.db

sed -i "s/yyyy/$file/" tempsbchg.sh

1

/คุณจะหายไปสุดท้าย

ลอง:

sed -i "s/yyyy/$file/" tempsbchg.sh

ไวยากรณ์ของs (ในขณะที่แทน) คำสั่ง's / regexp / ทดแทน / ธง' กระบวนการ / ตัวละครอาจถูกแทนที่ด้วยตัวอักษรอื่น ๆ อย่างสม่ำเสมอในคำสั่งs ที่กำหนด / อักขระ (หรืออักขระอื่นใดที่ใช้แทน) สามารถปรากฏในregexp หรือเปลี่ยนเฉพาะถ้ามันนำหน้าด้วย \ อักขระ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.