いくつかのフィールドを含むファイルがあります。例えば、
var One = "fcb";
var Two = "abc";
どうやってできるかアップデート/交換この行はスクリプトを使用していますか?
私は次のことができるようにしたいです。
echo -n "Enter One: "
read One
echo -n "Enter Two: "
read Two
sed -i $One ./file.js
sed -i $Two ./file.js
ただし、スクリプトを実行すると、次のようになります。
Enter One: fge3
Enter Two: ghj5
示す:
sed: -e expression #1, char 1: unknown command: `f'
sed: -e expression #1, char 2: extra characters after command
ベストアンサー1
sed コマンドは次のとおりです。
sed -i -e 's/var One =.*/var One = "'$One'";/' -e 's/var Two =.*/var Two = "'$Two'";/' file.js
以下を追加するように編集されました。
トラップに注意してください...ユーザーがfoo/bar
答えのような不快な文字を入力した場合:-)
2番目の編集:
欲しくないなら許可する間違った文字があると中断する可能性があります。たとえば、次のようにread One
追加できます。
if [[ "$One" =~ "/" ]]; then echo bad char / not allowed; exit; fi
sed
ステートメントに別の文字(aの|
代わりに/
)を選択して無効にすることができます。
それ以外の場合は、賢い引用を試してください。
One=$(echo "$One" | sed 's/\//\\\//g')