![sed: -e 式 #1、文字 44: 終了していない 's' コマンド [閉じる]](https://linux33.com/image/83586/sed%3A%20-e%20%E5%BC%8F%20%231%E3%80%81%E6%96%87%E5%AD%97%2044%3A%20%E7%B5%82%E4%BA%86%E3%81%97%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%20's'%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
手順は次のとおりです。
sed -i 's|/group/dairy/phuongho/garuns/out|$XXX/out/' exp/garuns.vpz
これが何の問題なのか教えてもらえますか?質問タイトルに記載されているエラーが発生したためです。
答え1
エラーメッセージが示すように、終了|
コマンドs
の最後のビットがありません。
sed -i 's|/group/dairy/phuongho/garuns/out|$XXX/out/|' exp/garuns.vpz
^
一重引用符を使用しているため、$XXX
ファイル内の文字通り置き換えられます。価値が欲しいなら変える XXX
、代わりに二重引用符(sed -i "..."
)を使用してください。
また、パターンには先行スラッシュがありますが、後続スラッシュはなく、代替ではその逆も同様です。 (これはおそらくあなたが望むものですが、奇妙に見えます。)