Sed, neden “char 53: unerminated` s ”komutunu verir.


28

Neden bu bash betiği

ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF

çıktı ->

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

Yanıtlar:


38

Bu skomut sed, belirli bir sözdizimi kullanır:

s/AAAA/BBBB/options

sikame komutu nerede , AAAAdeğiştirmek istediğiniz regex, yerine BBBBneyi değiştirmek istediğinizi optionsve ikame komutunun global ( g) veya ignore case ( i) gibi seçeneklerinden herhangi biri .

Özel durumunuzda, son noktayı kaçırdınız /, eğer eklerseniz, iyi sedsonuç verecek:

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

info sed 'The "s" Command' s komutunun tam tanımını ve kullanımını içerir.


9

/Sonunda kayıp .

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

1
Kaybolan /değil g, garzu edilmeyebilir hangi küresel içindir.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.