क्यों sed आउटपुट "char 53: निर्लिप्त` s 'कमांड "


28

यह बैश स्क्रिप्ट क्यों

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

जवाबों:


38

में sकमांड sed, एक विशिष्ट सिंटैक्स का उपयोग करता है:

s/AAAA/BBBB/options

जहां sप्रतिस्थापन कमांड है, AAAAवह रीजेक्स है जिसे आप बदलना चाहते हैं, BBBBवह है जो आप चाहते हैं कि इसे बदल दिया जाए और optionsयह प्रतिस्थापन कमांड के विकल्पों में से कोई भी हो, जैसे कि वैश्विक ( g) या मामले को अनदेखा करें ( i)।

आपके विशिष्ट मामले में, आप अंतिम स्लैश को याद कर रहे थे /, यदि आप इसे जोड़ते हैं, तो sedठीक काम करेगा:

➜  ~  sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME

info sed 'The "s" Command' इसमें एस कमांड का पूरा विवरण और उपयोग शामिल है।


9

/अंत में गुम ।

sed -i "s/database_name: [^ ]*/database_name: kartable_$ME/" $PARAM_FILE

1
यह वैश्विक /नहीं है g, gजो वांछित नहीं हो सकता है के लिए गायब था ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.