ทำไมสคริปต์ทุบตีนี้
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
เอาท์พุท ->
sed: -e expression #1, char 53: unterminated `s' command
ทำไมสคริปต์ทุบตีนี้
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
เอาท์พุท ->
sed: -e expression #1, char 53: unterminated `s' command
คำตอบ:
s
คำสั่งในการsed
ใช้ไวยากรณ์ที่เฉพาะเจาะจง:
s/AAAA/BBBB/options
โดยที่s
คำสั่งการแทนที่AAAA
คือ regex ที่คุณต้องการแทนที่BBBB
อยู่กับสิ่งที่คุณต้องการให้แทนที่ด้วยและoptions
เป็นตัวเลือกใด ๆ ของคำสั่งการทดแทนเช่น global ( g
) หรือไม่สนใจเคส ( i
)
ในกรณีเฉพาะของคุณคุณไม่มีเครื่องหมายสแลชสุดท้าย/
หากคุณเพิ่มมันsed
จะใช้งานได้:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command'
รวมถึงคำอธิบายแบบเต็มและการใช้คำสั่ง s
ไม่มี/
ที่สิ้นสุด
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME/" $PARAM_FILE
/
ไม่ได้g
,g
สำหรับทั่วโลกซึ่งอาจจะไม่เป็นที่ต้องการ