1

このコードがエラーを返すのはなぜですか?

#!/bin/bash
ARG=$1
MYVAR="TEST"
FILE="/path/to/file/$ARG"
AAA="/path/test/$MYVAR"
BBB="foo bar $AAA bar foo $AAA"

sed -i -e "s/TEXT/$BBB/g" $FILE

sed: -e 式 #1、文字 58: `s' への不明なオプション

4

2 に答える 2

2

置換 ( $BBB) には、 に使用しているのと同じ区切り文字であるスラッシュが含まれていますsed。別のものを使用してください:

sed -i -e "s|TEXT|$BBB|g" $FILE
于 2013-09-16T23:16:30.453 に答える
1

デバッグモードの使用 (#!/bin/bash -xシバンとして使用):

+ ARG=foo
+ MYVAR=TEST
+ FILE=/path/to/file/foo
+ AAA=/path/test/TEST
+ BBB='foo bar /path/test/TEST bar foo /path/test/TEST'
+ sed -i -e 's/TEXT/foo bar /path/test/TEST bar foo /path/test/TEST/g' /path/to/file/foo
sed: -e expression #1, char 18: unknown option to `s'

他の人が説明をしてくれました。

于 2013-09-16T23:18:35.210 に答える