কেন সেড আউটপুটগুলি "চর 53: নিরবচ্ছিন্ন '' এর আদেশ" দেয়?


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' s কমান্ডের সম্পূর্ণ বিবরণ এবং ব্যবহার অন্তর্ভুক্ত রয়েছে।


9

/শেষে অনুপস্থিত ।

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

1
এটি অনুপস্থিত ছিল /না g, gএটি বিশ্বব্যাপী যা সম্ভবত পছন্দসই নয়।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.